Home

EMC Documentum Dynamic Delivery Services

image

Contents

1. be Dynamic Delivery Services User Manual 88 Client Services Related links e GWT Services GWT Index Service The GWT Index Service provides developers with the ability to manipulate xDB indexes This is codified in the com emc documentum xml dds gwt client rpc xdb index IndexServic interface which provides the following methods e getIndexList returns the list of indexes for given target object e getKeys returns the keys in the index e getStoragePages returns the number of storage pages used by an index e removelndexes removes indexes from the list of indexes of given target object The following example demonstrates the usage of the Index Service in a GWT client application IndexServiceAsync indexService DDSServices getIndexService indexService indexService getIndexList path new AsyncCallback lt List lt SerializableIndex gt gt public void onSuccess List lt SerializableIndex gt result Handle the list of SerializableIndex objects her public void onFailure Throwable caught Handle exceptions here DE Related links GWT Services GWT XQuery Service The GWT XQuery Service allows developers to execute XQueries on the server side This is codified in the com emc documentum xml dds gwt client rpc xquery XQueryService interface which provides the following method e execute executes an XQuery on a context object specified by a URI Optional
2. If no locale is set then the files are to be stored in the root of the Collection and of the CollectionMetadata Metadata DDS expects the metadata of content files to be in XML format The XML Store has a built in metadata but as this only supports key values pairs it cannot be used to store the DDS metadata which is assumed to be in XML format Therefore the metadata of content files is always stored in a separate XML Document As we have seen the content data and its metadata are stored in two separate libraries Collection and CollectionMetadata Under these we will see identical parallel structures of libraries and files Dynamic Delivery Services User Manual 12 Administration containing data and libraries and files containing metadata as shown in the following screenshot of the xDB administrator after loading the data of the Garage demo application S29 DATA 9 garage 5 Collection B eng 4 concepts a tasks B changingtheoil annotated xml 5 changinatheoil xml 5 garagetaskoverview xml 5 organizing xml 5 shovellingsnow xml B spraypainting xml B takinggarbage xml 5 washingthecar xml E l image of hierarchy ditamap B sequence ditamap a deu E jpn GJ nid B A CollectionMetadata D H E E 5 changinatheoil xml 5 garagetaskoverview xml 5 organizing xml 5 shovellingsnow xml 5 spraypainting xml 5 takinagarbage xml 5 washingthecar xml D hierarchy dit
3. Selecting a DITA Document will display it in the view panel From the contents panel the user can drag any Topic Concept or Task onto the publication panel to add it to the DITA Map currently being edited Maps cannot be added to the DITA Map Double clicking on a Map will load it into the publication panel for editing If there was an unsaved DITA Map in the publication panel it will be discarded Dynamic Delivery Services User Manual 115 DEMO APPLICATIONS Publication panel At the bottom left of the main area this component allows you to build or edit a DITA Map Initially it contains a new empty Map with New Publication as its default title The DITA Map is represented as a tree of which the various nodes can be opened or closed for easy navigation A node represents a reference to a topic corresponding to a lt t opicref gt XML element and which can reference a Topic Concept or Task and can contain other topics A particular topic can only be included once in a DITA Map To add a Topic Concept or Task to the DITA Map drag it from the content panel and drop it on the tree Dropping it onto an existing topic will add it as the last child of that topic Dropping it between two topics will insert the topic in that location Dropping the topic on the Map root element will add the topic to the end of the Map If a topic which is already contained in the Map is again dropped on the DITA Map a warning dialog will appe
4. Dynamic Delivery Services User Manual 41 API Frameworks and Services XBaseManager Interface The XBaseManager interface com emc documentum xml dds application XBaseManager provides the following methods e getXBase retrieves the XBase with the specified Id e getXBases retrieves a List with all the XBases e addXBase creates a new XBase with the specified Configuration e removeXBase removes the XBase Working with Applications Being a Service an instantiated Application should be configured with the Bootstrap Configuration object see the Configuration documentation to obtain the information on the Main Store as well as on the StoreUser to use with that Store The Bootstrap can also contain references to the Services Configuration file which contains configuration information for the Services used by the Application and to the Stores Configuration file which declares all the Stores used by the Application along with their default StoreUsers When an Application is initialized by the Initialize action the StoreManager StructureManager ServiceManager and XBaseManager are initialized and Store StoreUser DataSet Locale Service and XBase objects are created as specified in the Configuration When started all Stores Structures Services and XBases are accessible through their respective Managers The Application object can be obtained through the relevant ApplicationProvider methods and can be used to retrie
5. Generated end user applications are 100 Java run anywhere e Based on open standards and open source XML XQuery XProc XForms Java Apache Tomcat Google Web Toolkit e Provides a rich API to developers The API offers support for server side and client side development Dynamic Delivery Services User Manual 5 Introduction e Leverages high performance XML database xDB offers reliable and scalable XML data storage with fast access regardless of the number of concurrent users or the number of documents or the database size It has a built in transaction mechanism and supports load balancing and replication of databases over multiple machines DDS extensive server side framework makes it easy to use existing and compose new services based on xDB capabilities DDS admin application also assists you in having the xDB maintain the appropriate indexes on your data for optimal retrieval performance Includes GWT widgets and services DDS comes with an extensive set of GWT widgets and services tailored to be used in combination with the DDS services Includes a library of JSP tags A tag library facilitates the use of DDS services from JSP based applications e Included source code samples e Support for synchronization with EMC Documentum Content Server DDS can be used alongside Documentum Content Server using data feeds from its Site Caching Services SCS SCS is part of the EMC Documentum Site Delivery Services
6. If no XDBLibraryOptions are specified explicitly the default DDS Options will be used when a Location is created Concurrent Library and Concurrent Namebase are set to true and the other options are set to false The semantics of these options are described in the xDB documentation Persistence Layer and File System DDS includes a Filesystem implementation for the Persistence Layer in the com emc documentum xml dds persistence filesystem package The following objects provide extra functionality on top of what is offered by the standard interfaces FileSystemStore The FileSystemStore interface extends the Store interface and adds accessors for e FileSystemType the type of the File system e Virtual Root this allows one to define a Store which represents only a part of the FileSystem By specifying a path the directory with that path becomes the root of the Store Any paths used when creating Locations or Containers in the Store will be treated as relative to the Virtual Root e Prefix this represents the prefix that will be added to the absolute path to make the path a valid path for the filesystem For example the prefix for a WindowsStore representing the Dynamic Delivery Services User Manual 38 API Frameworks and Services C drive will be C The prefix is generated automatically based on the Store configuration i e the Id Virtual Root and other properties WindowsStore The WindowsStore models a Windows
7. lt dataModuleResolver gt com example le Resolver lt dataModuleResolver gt lt stateManager gt com example le StateManager lt stateManager gt lt s1000DVersion gt 2 3 lt s1000DVersion gt lt logicengineservice gt Dynamic Delivery Services User Manual 76 API Frameworks and Services DDS URIs Applications refer to resources using URIs DDS provides an extensible URI scheme as a unified way of representing and identifying resources This URI scheme is intended to e hide complexity of underlying Stores and their internal structure e simplify the identification of resources for Developers e loosen the coupling between client side code and the actual data layout in the Store Concepts The syntax of DDS specific URIs follows the generic URI syntax as defined in Internet standard STD 66 or RFC3986 In its general form a DDS URI has the following structure dds lt domain descriptor gt lt domain specific part gt The domain descriptor which is a registry based authority string carries information about the target domain of the URI This information is described using a set of so called domain attributes The domain descriptor specifies a posibbly empty sequence of attribute value pairs separated by a semicolon The structure of the attribute value pair is lt attr gt lt value gt The names of attributes their possible values and their semantics are implementation dependent The domain spe
8. Name Type Library Path DATA kitchensink Collection eng tasks Existing indexes Index suggestions amp concepts vierarcny CDs Geena Ceea sequence yon I Library Id Index I Library Name Index A Library Name Index A Concurrent 2 Type B Library Id Index Options Disk pages B Concurrent 2 O O RB I Dynamic Delivery Services Admin Microsoft Internet Explorer Local intranet ce J search She Favorites O B amp fw LW a3 Address http flocalhost 8088 admin x Node Tree Drag amp Drop Tree o Beng B concepts E hierarchy ditamap E sequence ditamap o Ee P changingtheoil annotated xml comment xml stylesheet task annotated E changingtheoil xml E garagetaskoverview xml e E organizing xml E shovellingsnow xml E spraypaintina xml Y container V task annotated D tite prolog gt taskbody bamrelated links EN Topics fi Concepts EMC Dynamic Delivery Services Applications jf Manage Indexes E root library E APPLICATIONS a configuration Name Type Application Path APPLICATIONS garage Add library Add XML document Add BLOB _ Upload Z E Tasks Contents HTML 6 XML fA POF Tasks 4 E Changing the oil in your car E Organizing the workbench a El Spray
9. e getContainer creates a new Container object which is valid in the specified Store with the specified Location as parent and with the specified Container Name StoreChild The StoreChild interface com emc documentum xml dds persistence StoreChild provides accessors to the following StoreChild properties Name the name of the StoreChild For Locations this might be the directory name in a file system or the library name in an XDB database In that case it is equal to the last component of the Location Path For Containers this might be the file name in a file system or the document name in an XDB database For XMLNodes the name depends on the type of the XML Node and could be the element name the attribute name etc e Store Type the type of Store for which this is a valid Location Dynamic Delivery Services User Manual 32 API Frameworks and Services e Store represents the Store the StoreChild belongs to e Store Alias represents the alias of the Store the StoreChild belongs to e Path the full path of the StoreChild in the Store Generally represented as the Path Components joined together by the Separator character for the Store The StoreChild interface provides the following methods e isLocation indicates whether the StoreChild is a Location e isContainer indicates whether the StoreChild is a Container e isXMLNode indicates whether the StoreChild is an XMLNode e asNode interprets the St
10. entry in a dialog of a Process Data Module instance and returns the new process view setMenuChoiceSelected sets the state of a menu choice in a dialog of a Process Data Module instance and returns the new process view pushButton presses a button in a dialog of a Process Data Module instance and returns the new process view submitExtAppResponse submits results of running an external application for a Process Data Module instance and returns the new process view These methods always expect the following two parameters data module reference reference to a Process Data Module process owner data additional data to be associated with the current User This information can be used by the server side State Manager implementation for more fine grained identification of running Process Data Module instances This parameter can be left unspecified The Logic Engine Service uses the following GW T specific interface com emc documentum xml le gwt client rpc SerializableProcessOwner implementations of this interface can be used for specifying additional information associated with the current User Server side State Manager implementation can use this information for identification of running Process Data Module instances The Logic Engine Service uses the following GW T specific classes in the com emc documentum xml le gwt client rpc package SerializableDataModuleRef GWT equivalent of the class com emc documentum xml le engi
11. the Context Id would be the Id of that document or item The Time field contains the time at which the Response was submitted The SimpleResponse class is a simple implementation of this interface which can be instantiated using either an XML Fragment or a DOM Node ResponseService The ResponseService interface com emc documentum xml dds usi ResponseService provides the following methods Dynamic Delivery Services User Manual 63 API Frameworks and Services e submit methods allow submission of a Response as a String DOM Node or using an existing Response object Submission will trigger preprocessing storage and postprocessing e registerPreProcessor and registerPostProcessor these methods set up an association between the supplied Filter and the supplied Processor If a submitted Response matches the Filter the corresponding Processor will be executed e registerXBase sets up an association between the supplied Filter and the supplied XBase If a submitted Response matches the Filter it will be stored in the corresponding XBase e registerXBase methods allow the deactivation of the specified processors or XBases ResponseFilter The ResponseFilter interface com emc documentum xml dds usi ResponseFilter provides the following method e accept returns true if the tested Response is accepted by the Filter and false if it is not ResponseProcessor The ResponseProcessor interface com emc documentum xml
12. 2 character language codes and language names e getISO2LanguageCodes returns all defined ISO 3 character language codes e getISO3Countries returns all defined ISO 3 character country codes and country names e getISO3CountryCodes returns all defined ISO 3 character country codes e getISO3Languages returns all defined ISO 3 character language codes and language names e getISO3LanguageCodes returns all defined ISO 3 character language codes The following example demonstrates the usage of the I18N Service in a GWT client application I18NServiceAsync il8NService DDSServices getI18NService i18NService getISO3Languages eng new AsyncCallback lt Map lt String String gt gt public void onSuccess Map lt String String gt result result Handle the map of language codes and language names here public void onFailure Throwable caught Handle exceptions here DE GWT Services GWT XProc Service Developers can use the GWT XProc Service for a GWT front end for the XProc Service This is codified in the com emc documentum xml dds gwt client rpc xproc XProcService interface which provides the following method e runPipeline executes an XProc pipeline on the server and returns the result The pipeline is identified by a URI The GWT XProc Service uses the following GWT specific classes in the com emc documentum xml gwt xproc client rpc package Dynamic Delivery Services User Manual 90 Cl
13. Alias of the DataSet which is unique in an Application This means there is no need for the Developer to know in which Store or at what location in the Store the DataSet resides this is resolved transparently The Application keeps track of the DataSets that have been configured for it An Application can have access to multiple DataSets and conversely a DataSet can be accessed by multiple Applications For internationalization I18N purposes DDS provides the concept of a Locale which is a subset of a DataSet and contains the data for a particular language country or a combination thereof DataSets and Locales are examples of a Structure which is the generalized concept representing any set of Locations and Containers together with a Strategy called StructureStrategy which determines the physical location where the data will be stored The Application keeps track of and offers access to the DataSets and Locales that have been configured by means of the StructureManager Configuration of the DDS DataSets and DDS Locales which are available happens through the Structures xm1 document in the Main Store New DDS DataSets and DDS Locales can also be created with the StructureManager See Application Framework and Structures Framework for more information Dynamic Delivery Services User Manual 26 API Frameworks and Services Services The Application manages the Services offered by the server component through the Service Fra
14. DDS aware data module resolver provides accessors to the following e DDS application the Application object e DDS user the User using the Logic Engine e Session pool the session pool associated with the Logic Engine AbstractDDSStateManager Dynamic Delivery Services User Manual 74 API Frameworks and Services Abstract implementation of the State Manager interface com emc documentum xml dds le Abst ractDDSStateManager that provides basic integration with DDS Extend this class if you want to implement a custom state manager The DDS aware state manager provides accessors to the following e DDS application the Application object e DDS user the User using the Logic Engine e Session pool the session pool associated with the Logic Engine Usage To use the LogicEngineService a reference is obtained from the Application object Get the Logic Engine service instance ogicEngineService logicEngineService LogicEngineService application getServiceManager getService DDSServiceType LOGICENGINE User user 7 Create a new DDSLogicEngine instance DDSLogicEngine logicEngineDDS logicEngineService newLogicEngine user Get the Logic Engine object and start a process LogicEngine logicEngine logicEngineDDS getLogicEngine j DataModuleRef dmRef ProcessView view logicEngine initProcess dmRef null view logicEngi
15. FileLogger temp log DDS_ log if executed on July 3rd 2008 at 8h23 will redirect all logging to the file temp log DDS_20080703_082356 log To redirect all logging from classes com my Foo and com my Bar toa separate file called Fubar you can register a new Logger after ensuring that the default suffix and default path have been set correctly on the LogCenter LogCenter setDefaultLogPath temp log LogCenter setDefaultSuffix log LogCenter register com my Foo Fubar true LogCenter register com my Bar Fubar true If executed on July 3rd 2008 at 9h00 this will redirect all logging to the file temp log Fubar_20080703_090000 log All these operations can be performed on a running system The new configuration will take effect immediately XBase Framework The XBase framework provides a simple and easy way to store data in xDB Stores Concepts An XBase is a logical data structure in which one can store XML Fragments submitted as XBaseEntries Underlying the XBase is a set of XML documents called XBaseFiles These files store the actual data using a StorageStrategy The StorageStrategy can be implemented in many ways for example e Jt can maintain a number of documents using round robin to write XBaseEntries into them improving performance through multi threaded access e It can use some identifier in the XBaseEntry to determine in which file the Entry should be stored thus groupin
16. GWT XQuery S6rvice wesi inaapi ae er a aeaa aa eaa aaa anita iae aa a a 89 GW TEN eE nT e e E E EEE E EE E E A ET 90 GWI X POC Service mintin tana a a a a Bienes tad aa aes 90 GWT Logic Engine Service sais riie aiei aink agii edini aaa a iai adai aiia iaaa aa 91 DDS Tagi Library niori iei norieta aniei dai i adil gah tee veda 94 DDS AdMin Glentacse mene a E aE aa A E EE eS 99 The Admin user merate srecna EAER E E aE AR ERE 99 NAVIGATION ace ni E A E AAaiegesda ciacedaasaanenes 100 Usma dialogs ea a A E eee hoo eat Sea eee Ua 100 Applications and Data 00 0 ri ee TEA EEE EEEE EREE 101 Working with Applications ssoeireseae neninn e EERE EE A AARE ERTAN EATER EERE TA 102 Creating an application 2 2 eee cceceeceeeeeeeeeeceeeeeeeeaeeeeeeeeesaeeseeeeeesaeeeeeeeeetiaeeeseeeess 103 Renaming AN ODOC errare reren AEEA AEE EEE AE SEERA EEA S 103 Deleting An ODjOCE serren a T E E E 103 Working with libraries S As eai E E ANRA TESEN E RAT EEEE Eea ERE AMASERAR 104 Creating amp Ibray siricinirsc ine a aaa a aadd a ae aa aa aa 104 Adding a BLOB document ececceceeeeeeeeeeececaeeeeeaeeceeaeeeseaeesecaeeeesaaeseeeeeeesaeeneneees 105 Uploading a ZIF ME serei ate E T ai as ated 105 Working with XML documents cceceeeee eee eeeeeee eee eeee eee eeeaaeeeeeeeaeeeeeeesaeeeeeeseeneaeeeeeeenaaees 105 Adding an XML document einer are rere Aa EN panara A ai EA 106 Editing an XML GOCUMENT zerate eeee eee ee ra a a nT H nE Kaaa aea EREET A 106 Viewin
17. Long result here public void onFailure Throwable caught Handle exceptions here p e GWT Services e Persistence Layer GWT XML Persistence Service The GWT Persistence Service provides the DDS application developers with the ability to access the XML related functionality of the persistence service in GWT client code This is codified in the com emc documentum xml dds gwt client rpc persistence PersistenceServic interface which provides the following methods e getNode returns the node with given URI e getNodes returns a list of nodes with given URIs Dynamic Delivery Services User Manual 87 Related links Client Services e getChildCount returns the number of child nodes of node with given URI e getChildren returns the child nodes of node with given URI e getContentAsString returns the content of node with given URI as string e insert inserts an XML fragment move moves an XML fragment e copy copies an XML fragment e remove removes a node with given URI e setAttribute sets an attribute on element with given URI e setAttributes sets attributes on element with given URI The following example demonstrates the usage of the XML Persistence Service in a GWT client application String resourceURI XMLPersistenceServiceAsynce xmlService DDSServices getXMLPersistenceService xmlService getChildren resourceURI SerializableNode
18. Structure The DDSStructure interface provides the following methods e getLocation creates a Location object inside the Structure with the specified relative path e getContainer create a new Container object inside the Structure with the specified relative path and Container Name DDSDataSet The DDSDataSet interface com emc documentum xml dds structure DDSDataSet provides accessors to the following DDSDataSet properties e Alias an alias unique to the Application identifying the Structure It is configured in the StructuresConfiguration e Locale Aware indicates whether the DataSet can contain Locales e Default Locale the default Locale for the DataSet It is only relevant if the DataSet is locale aware DDSLocale The DDSLocale interface com emc documentum xml dds structure DDSLocale provides accessors to the following DDSLocale properties Dynamic Delivery Services User Manual 48 API Frameworks and Services e Data Set the DataSet to which the Locale belongs e Java Locale the Java Locale java util Locale to which the Locale corresponds Usage When working with DataSets and Locales developers need not know the physical layout of the Store To access data first obtain the relevant DataSet or Locale using the application getDataSet and application getLocale methods These yield the relevant DDSDataSet and DDSLocale object which have getLocation and getContainer methods for creating the correct Lo
19. The actual implementation should extend the com emc documentum xml dds service impl ServicelImp1 class and implement the interface created for the new Service This class provides the lifecycle implementation Some abstract methods provide hooks to implement behaviour when the state of the Service is changed For example data structures should be initialized by implementing the executeInitialization method The Service functions that provide normal runtime functionality should throw a ServiceNotAvailableException if the Service is not in the RUNNING state when called Persistence Layer The Persistence Layer provides abstractions which allow the Developer to persist retrieve and manage data without reference to the type of the underlying storage facilities Concepts The Persistence Layer is built around the following major storage concepts An Implementation provides Persistence Layer support for specific types of storage facilities A Store models the underlying storage facility A Store may correspond to a file system an XDB database but not a federation or any storage facility that is organized hierarchically A StoreChild is the parent concept of the following concepts which model entities contained in a Store e A Location models a location in the storage facility where data can be stored Locations are organized hierarchically with a single root Location A Location may correspond to a directory or folder on a file system
20. User Manual 83 Related links Client Services SerializableNode DOCUMENT_NODE new AsyncCallback lt List lt SerializableNode gt gt public void onSuccess List lt SerializableNode gt result Handle the list of SerializableNode objects her public void onFailure Throwable caught Handle exceptions here be XProc service The XProc service interface com emc documentum xml dds gwt client rpc xproc xXProcService provides a GWT RPC interface for running XProc pipelines XProc service example XProcServiceAsyne xprocService DDSServices getXProcService SerializablePipelineInput input new SerializablePipelineInput input addInput Source new SerializableXMLSource uri xprocService runPipeline classpath resources xproc xml pipe xpl input true new AsyncCallback lt SerializablePipelineOutput gt public void onSuccess SerializablePipelineOutput result Handle the SerializablePipelineOutput here public void onFailure Throwable caught Handle exceptions here e GWT Application Service e GWT User Service e GWT Log Center Service e GWT Persistence Service e GWT XML Persistence Service e GWT Resource Service e GWT Index Service e GWT XQuery Service e GWT II8N Service e GWT XProc Service e GWT Logic Engine Service GWT Widget Library DDS supports use of the Google Web Toolkit GWT for client side development The DDS GWT Widget Lib
21. a file Separate Loggers can be registered to catch the output from different Java classes Initially without any configuration the LogCenter will log everything to a SystemStreamsLogger which logs all the messages to STDOUT A Default Logger can be registered which will log everything to a file Several classes can be redirected to a single Logger Additional Loggers can be registered for specified class names Whenever log messages have such a class specified as the sender the messages will be redirected to the appropriate Logger For these loggers it is possible to override the global Debug Status which indicates whether debug level messages will be logged In practice this means that it is possible to redirect logging for subsystems or particular classes to separate log files This can be done at runtime Interfaces The LogCenter has been codified into interfaces in the com emc documentum xml dds logging package Operation The LogCenter interface com emc documentum xml dds logging LogCenter provides accessors to the following LogCenter properties e Default Logger the Logger to which all messages will be routed if no sender is specified for the message Dynamic Delivery Services User Manual 66 API Frameworks and Services e Default Log Path the path where log files will be created if a FileLogger is used e Default Log Suffix the suffix for log filenames when a FileLogger is used e Debug Status ind
22. a Store it is still possible that a DataSet with the same name resides in another Store which will also be accessed by the Application When the Application has been started all the Structures configured in the document will be available in the StoreManager See Application Configuration for more information 5 Configure Services if required If no Services will be available in the Application this step can be skipped You must manually createa Services xml configuration file which contains the configuration data for the Services This file must be stored in the Main Store by default in APPLICATIONS lt application_name gt Services xml All the Services configured in the file will be available in the ServiceManager when the Application has been started They are all started automatically during Application startup When the Application has been started all the Services configured in the document will be available in the StoreManager See Application Configuration for more information 6 Start Tomcat using a separate command line session To access the Main Store the Application needs to be configured with a StoreUser meaning the user at Store level not a DDS User which will be used to connect to the Store The Dynamic Delivery Services User Manual 28 API Frameworks and Services password required by the Application will be stored in encrypted form in the Application Bootstrap The SecurityTool Ant task can
23. additional elements e schemas use to specify schemas The schemas are stored in the catalog of the database Nested elements schema with attributes e schematype specifies the type of the schema required Available schema type values e XMLSchema see http www w3 org 2001 XMLSchema or e DTD see http www w3 org TR REC xml e Systemid the system Id of the schema during import required e publicid The public Id used in the XML data to reference the DTD required if schema is a DTD e metadatafileset Extension of Ant fileset to specify all metadata files that must be imported See Ant fileset attributes Optional additional attributes e metadataextension specifies a file extension This extension is removed during import Note The content filesets are locale aware xmlfileset blobfileset and metadatafileset have an additional optional attribute locale Note Do not set locale if your dataset is not locale aware lt dds import data dataset dataset name databaseref demo database gt lt dds schemas gt lt dds schema schematype http www w3 org TR REC xml1 systemid dds garage data dtd topic dtd publicid OASIS DTD DITA Topic EN gt lt dds schema schematype http www w3 org 2001 XMLSchema systemid dds garage data xsd task xsd gt lt dds schemas gt lt dds xmlfileset dir dds garage data collection repository britannica eng locale eng gt lt include name
24. build b Deploy the war file to the target Tomcat server for example using the Tomcat manager tool c Test run the deployed application If the target Tomcat server is installed locally and properly configured the web application is now available at http localhost 8080 name A test deployment example A typical approach is for developers to test run their applications in GWT hosted mode during the early stages of development and to test more and more in deployed mode as application development advances A single developer can be working in parallel on several related applications which may be in different stages of development The example below shows a DDS Admin client at top left displaying the Kitchen Sink data set with the Kitchen Sink application running in GWT hosted mode right beside it Another DDS Admin at bottom left simultaneously shows the garage application library with garage running in deployed mode besides it at bottom right Dynamic Delivery Services User Manual 16 Bile Edt Qa Address o AAO http localhost 8088 admin F Dynamic Delivery Services Admin Microsoft Internet Explorer Pean Yrrots O A Z a OE a gt 6G Back Forward Refresh Stop Compile Browse Administration Google EMC Dynamic Delivery Services Applications Manage indexes amp DATA fa B kitchensink amp Collection Beng
25. build xml and build properties template are created in applications application bin The complete folder structure of DDS applications application is e bin with among others build xml and build properties e data for data sets xml and blob content e application for application resources that go into the database xforms xprocs xslt e configuration e resources e xforms e xproc e xslt e lib for application specific jars e resources for application resources that need to be on the application s classpath e src for the application s Java including GWT and other sources e war Dynamic Delivery Services User Manual 19 Administration e WEB INF e g for the application s web xml file Use only what is needed For example if the application is not a servlet based application or if the default web xml is fine you can omit the war folder Parameters e application build Prepares an application by compiling all source code both client and server Developer The result is placed in build application Actually this target just invokes the build target in the application s own build xml to be found in applications application bin By default build will call build client and build server in DDS bin build xml e build client is tailored for GWT applications it invokes the GWT compiler with the application s jars from its lib folder on the classpath on the generic DDS GWT cod
26. button again to regenerate the suggestions You can use a Filter dialog to exclude index suggestions from the list that are irrelevant to your requirements The dialog s available constraints include Index Type Node Type Attribute and Namespace 1 Navigate to the required Collection on Manage Indexes 2 Select the Index Suggestions tab 3 If necessary click the Analyze data button A list of updated index suggestions appears Note You can see additional information in the Index suggestion table by hovering over the icon just before a column of a specific Index suggestion 4 Where necessary change index suggestions to your requirements 5 If you want to constrain the list click the Filter button The Filter dialog appears You can use this to filter out the index suggestions you do not want to see For example To see only full text index suggestions you can filter out Value indexes by selecting option Value Index To see the index suggestions on an element only you can filter out all Attribute Only and Attribute and Element indexes by selecting the corresponding options You can filter out all default and fixed attributes by setting option Unspecified You can filter out all indexes on nodes with one or more predefined namespaces a Set the filter options you require b Click the Submit button A filtered list of index suggestions appears 6 Select the index suggestion s you want to create Dynamic Delivery
27. child Location of myLocation Applying LocationOptions If the LocationOptions are set on a Location they will be applied when the Location is created If they are null for the Location the default LocationOptions will be used When Locations are being created implicitly if the createPath parameter is set to true for persistence actions the LocationOptions of the Location provided as a parameter or implicitly present in the Container object will be used for all the newly created Locations Setting the LocationOptions on existing Locations may not always be possible With XDB for instance the library options can only be applied when the library is created The Persistor setOptions method will always throw an Exception Working with Containers The easiest way to obtain a Container object is to call the getContainer method on a Store directly This creates a Container object of the correct type with default ContainerOptions for that Store Container container store getContainer myLocation Document xml ContentType XML or Container container store getContainer foo bar Document xml ContentType XML The Location property of the Container will be set to the Location in which the Container was constructed Working with XMLNodes The easiest way to obtain an XMLNode object is to call the getX MLNode method on a Container This creates an XMLNode object of the correct type using the provid
28. dds uri DDSURI This class represents a URI It contains functionality for creating new URIs as well as for extracting information from existing URIs domain attributes domain specific part etc e com emc documentum xml dds uri URIResolver This interface represents a URI resolver It contains methods for resolving URIs to URI targets and methods for generating URIs from existing content Custom implementations of this interface can be used with Applications com emc documentum xml dds uri URITarget This interface represents the URI target object that is the result of resolving a URI The package com emc documentum xml dds uri resolver contains the following URI resolver implementations e DDURIResolver The default URI resolver implementation e AbsoluteDomainResolver This URI resolver supports interpreting URIs as absolute paths in the target Store On the GWT client side the following classes are available e com emc documentum xml gwt dds util DDSURI GWT representation of an DDSURI This class provides the similar functionality to com emc documentum xml dds uri DDSURI Some of the DDSURI functionality is also available for use in XQueries The following XQuery extension function from the DDS namespace http www emc com documentum xm1 dds can be used generate uri Snode as node as xs string Generates using the application specifc URI resolver implementation an DDSURI for given XML node Usage The examples below
29. document by using the drag amp drop functionality e XQuery how to dynamically build a tree based on X Queries Dynamic Delivery Services User Manual 119 DEMO APPLICATIONS e XProc how to execute XProc pipelines on database objects and represent their results in a frame e XForms how to use XForms e Miscellaneous a number of widgets useful to developers Logic Engine demo DDS comes with a built in S1000D Process Data Module Logic Engine a software component that executes S1000D Process Data Modules and provides interactivity with the user DDS includes a simple demo application that demonstrates the usage of the Logic Engine in GWT applications Building and running the application In order to run the Logic Engine demo application perform the following steps in DDS bin 1 Build the application dds ant build Dapplication logicengine 2 Load sample data dds ant load all data Dapplication logicengine 3 Create the application WAR file DDS build logicengine logicengine war and deploy it in a servlet container dds ant create war Dapplication logicengine 4 If not otherwise configured the application will be available at http localhost 8080 logicengine Note After building the application you can always run it in the GWT hosted mode dds ant run Dapplication logicengine Data set The demo application comes with the following sample Process Data Module e Riding a bicycle a Process Da
30. e A title bar at the top containing e Title of the dialog e path of the node that the function applies to e A close button X Click this button to cancel the function and close the dialog e A work area containing e One or more data entry fields usually with descriptive labels in front and sometimes with action buttons for example to Browse to file location Dynamic Delivery Services User Manual 100 DDS Admin Client e A Submit or similar button to execute the function and close the dialog For some functions Admin evaluates or checks your input which may result in a warning or error message 1 Enter data Note On some dialogs you can use Tab and Shift Tab to move the text cursor from field to field 2 Activate submit or cancel the dialog e To execute click its Submit button at the bottom of the dialog e To cancel click its X button at the top of the dialog Applications and Data As was mentioned in the Administration section DDS database stores two kinds of data e One or more data sets each data set is a collection of actual publishable content data and its attendant metadata e Application data data that is internal to the web applications for example scripts of X Queries stylesheets XProcs XForms etc Application data Application data is organized into libraries A library can contain zero or more documents and or sub libraries Inside an application library each XForms script has its own
31. filesystem at the level of a disk which means that a WindowsStore represents a disk or a directory on the disk if the Virtual Root is set The Store Id should be the disk letter assigned in the OS e g C or D The filesystem should be directly mounted on the Server running DDS WindowsUNCStore The Windows UNC Store models a Windows share mounted over the network It has two specific properties e Host Name specifies the hostname for the share e Share Name specifies the name of the share UnixStore The UnixStore models a Unix or Linux filesystem or a directory on that filesystem if the Virtual Root is set The Store Id is null Persistence Layer and XAM DDS includes a XAM implementation in the com emc documentum xml dds persistence xam package Note The XAM SDK and VIM Java libraries should be installed on the server running the DDS Server components in order for the XAM integration to work The following objects provide extra functionality on top of what is offered by the standard interfaces XAMStore The XAMStore object has some additional properties with corresponding accessors e Connection String the String used for connecting to a XAM device specifying the VIM hostname etc e Content Registry the object which provides the virtual filesystem implementation It keeps track of all existing Locations and Containers since a XAM device has no hierarchical structuring of the data CenteraStoreUser T
32. library This is necessary because XForms scripts can consist of multiple files DDS expects application data to be in the library APPLICATIONS Here each application has its own named application library Content data and metadata Content data and metadata are stored in two separate libraries with parallel structures The content files are stored in a library called Collection and the metadata files in a library called CollectionMetadata For different locales languages each locale that is present in the collection will have its own sub libraries in inside Collection and CollectionMetadata For example in a standard DDS installation with the two demo applications garage and kitchensink the applications and data structures as shown for kitchensink by DDS Admin are Dynamic Delivery Services User Manual 101 DDS Admin Client Applications op Applications Manage Indexes amp root library Name EB APPLICATIONS te Type Application l l Path APPLICATIONS kitchensink E garage kitchensink Add library Add XML document amp configuration B resources amp xforms B GarageTitleSearch o E MyxXForm xproc 3 xslt DATA Data ie Applications B Manage Indexes 8 Name B garage Type Library Path DATA garage xml amp britannica Existing indexes Index suggestions britannica xml E kitchensink Delete J Select all ii Unselect all Collection Name Type O
33. logged at LOG level for routine events that should be logged every time they occur For example for auditing purposes when a user logs in the time and user id could be logged The WARNING ERROR and EXCEPTION levels can be used to signal the occurrence of unusual events which may require investigation by an Administrator The DEBUG level can be used for in depth logging about what the application code is doing and can be useful during development as well as for troubleshooting in a production environment Debug Mode Messages at DEBUG level are logged on the following conditions e Ifthe Debug Status of the LogCenter is true the message will always be logged Ifthe Debug Status is false but a sender has been specified and the Debug Status for the class of the sender has been set to true the message will be logged In all other cases the message will not be logged Log Files If no configuration is performed the LogCenter will send all messages to STDOUT by default To redirect all logging to a file a new FileLogger should be created using the FileLogger String logPath String logPrefix String logSuffix constructor and this should be set as the DefaultLogger The following example will create a log file with full path Dynamic Delivery Services User Manual 67 API Frameworks and Services lt logPath gt lt logPrefix gt _ lt timestamp gt lt logSuffix gt The following example LogCenter setDefaultLogger new
34. lt id gt lt name gt YourDatabase lt name gt lt type gt XDB lt type gt lt bootstrap gt xhive someother 1234 lt bootstrap gt lt cachePages gt 10000 lt cachePages gt Dynamic Delivery Services User Manual 45 API Frameworks and Services lt XDBStore gt lt stores gt The Store Alias is the alias that the Application will use to refer to the Store It should be unique for the Application The Id for an XDB Store is the name of the database The Default Store User is the StoreUser used for accessing the Store if no specific StoreUser has been supplied The other parameters are the same as in the Main Store declaration in the Bootstrap Other types of Store are supported as well e A WindowsStore is a Store mapping to a local Windows filesystem An example configuration would be lt WindowsStore gt lt alias gt testStore lt alias gt lt id gt C lt id gt lt type gt FILESYSTEM lt type gt lt virtualRoot gt my location lt virtualRoot gt lt fileSystemType gt WINDOWS lt fileSystemType gt lt WindowsStore gt The Id field for a Windows Store should contain the drive letter The virtual root is optional and can be used to specify a directory that will act as the root directory of the Store This means that if on this testStore getLocation foo bar is invoked the resulting Location would transparently be mapped to the C my location foo bar directory e A UnixStore is a Store mappin
35. lt entry gt lt name gt foo lt name gt lt rating gt 5 lt rating gt lt entry gt xBase submit session entry Note It may be easier to use the StoreEntryOperation in the Operations Framework since that takes care of managing the needed Sessions for the Store Dynamic Delivery Services User Manual 69 API Frameworks and Services It is recommended to keep the XML content format simple For LogBases the recommended format is lt entry gt lt key1l gt valuel lt keyl gt lt key2 gt value2 lt key2 gt lt key3 gt value3 lt key3 gt lt entry gt This recommended format has a root element called entry and encodes the data as key value pairs with the key used as tagname for a child element and the value being the content of that element Future extensions to LogBases may assume this format is being used XProc Service The XProc Service provides the functionality of the XProc processor to DDS Applications The XProc Service will be started automatically on Application startup provided it has been configured for the Application see Application Configuration and XProc Service Configuration for more information Concepts XProc represents a wrapper object on top of the XProc processor that provides for integration with DDS and its frameworks Resource manipulation in the XProc implementation is URI based The XProc processor uses so called resolver modules for resolving content for read access Whe
36. painting L Takina nurthe narhane Compose New Publication 1 Shovelling snow amp resources a E xforms amp xproc E dita html xpl E dita pdf xpl o New Publication E Shovelling snow Local intranet In the garage application the user has just started a new publication and dragged the first item into it DDS Ant targets Dynamic Delivery Services User Manual Administrators and Developers can use DDS Ant targets for various command line driven tasks including e Uploading volumes of data into the XML Store also data coming from SCS e Setting up application and dataset structures in the XML Store e Setting up a template folder structure before developing a new application e Compiling deploying and running developed applications Ant targets in build xml include e clean e create template e create database e create database layout e delete dataset e create application e delete application build e load application data e load data sets e load all data e run e create war 17 Administration e run xforms builder A typical DDS web application see the demo applications requires a separate build xml file in DDS applications application bin including the following targets e create application delete application e load application data e load data sets e build e run e create war Ant targets are described below in alphabetical
37. parameter tags described below Optional uri Example uri dds DOMAIN resource xproc dita html xpl The URI indicating the location where the pipeline can be found If omitted the context node is used output Example output out The output port specifies the name of the port whose output should be written to the JSP s output If omitted the pipeline s primary output port s output is written to the JSP s output ignoreoutput Example ignoreoutput false Boolean attribute specifying whether or not to ignore the pipeline s output altogether Default is false lt dds input gt The input tag specifies an input to an XProc pipeline port This tag is only meaningful within an xproc tag Optional uri Example dds DOMAIN data DATASET garage _LOCALE eng concepts oil xml The URI indicating the location where the port s input can be found If omitted the input tag s content is used as the port s input port Example port stylesheet The port through which the input should enter the pipeline If omitted the input enters through the pipeline s primary input port lt dds option gt The input tag specifies an option to an XProc pipeline This tag is only meaningful within an xproc tag Optional prefix Example prefix dds namespaceURI Dynamic Delivery Services User Manual 96 Client Services Example namespaceuri http com emc documentum xml dds taglib Required name Example name show_xml_decla
38. product set and prefetches content and metadata to a standards based repository e Support for EMC Documentum Forms Builder XProc Processor DDS comes with a built in XProc processor XProc or An XML Pipeline Language is a language for describing operations to be performed on XML documents An XML Pipeline specifies a sequence of operations to be performed on one or more XML documents Pipelines generally accept one or more XML documents as input and produce one or more XML documents as output Pipelines are made up of simple steps which perform atomic operations on XML documents and constructs similar to conditionals loops and exception handlers which control which steps are executed XForms Engine DDS offers a completely client side XForms Engine The engine is capable of processing and rendering forms in GWT applications as well as clients based on different technologies e g JSP Logic Engine DDS includes an S1000D Process Data Module Logic Engine implementation The S1000D Process Data Module is a standard XML format for representing interactive structures such as maintenance or troubleshooting procedures or various wizard like interfaces The Logic Engine is a software component that represents an interpreter of Process Data Modules It provides an interactive interface to the end users and performs actions such as applicability filtering branching and looping to guide end users through the process defined in the Process Dat
39. the following steps are taken e The Service iterates over the PreProcessors in the order in which they were registered checking whether the Response should be processed with the associated ResponseFilter If so the Response is processed and potentially transformed If transformation occurs it is the transformed Response that will be used from then on The Service looks up the first registered XBase for which the ResponseFilter accepts the Response The Response is stored in that XBase If there is no matching Filter the Response will not be stored The Service iterates over the PostProcessors in the order they were registered checking whether the Response should be processed with the associated ResponseFilter If so the Response is processed and potentially transformed If transformation occurs t is the transformed Response that will be used from that point onwards Interfaces The Response Service concepts have been codified into interfaces in the com emc documentum xml dds usi package User The User interface com emc documentum xml dds usi Response provides accessors to the Response content The asNode and asString methods return the content either as a DOM node or as a String representing the XML fragment The Request Id is a String identifying the Request to which this is a Response The Context Id is a String identifying the context in which the Response was given Typically if the Response concerns a document or item
40. will be discarded Save As allows the user to copy the DITA Map currently being edited in the publication panel to a different location A path dialog will be shown which allows the user to select the library and specify the document name The suffix ditamap will be added automatically to the name and should not be entered Load allows the user to load a DITA Map into the publication panel A path dialog will be shown which allows the user to select the library and to specify the full document name including the ditamap suffix If the publication panel contains an unsaved DITA Map that map will be discarded Delete allows the User to delete a DITA Map from the database A path dialog will be shown which allows the user to select the library and specify the full document name including the ditamap suffix If the publication panel contained the DITA Map being deleted it will be replaced by a new unsaved empty DITA Map e Language menu t English German Dutch japanese This menu allows the user to switch between languages in the current data set The content panel will only display documents for that language e Data Set menu britannica y Garage This menu allows the user to switch between the available data sets When a data set is active the content panel will only display documents from that data set Search menu P Britannica Dynamic Delivery Services User Manual 117 DEMO APPLI
41. will use Operations Dynamic Delivery Services User Manual 29 API Frameworks and Services Creating New Operations Implementation of a new Operation requires two classes one implementing the Operation interface and one implementing the OperationExecutable interface Operation contains all the information needed to carry out the coded task Typically the information is provided in the constructor and getters are provided so the OperationExecutable can access the information OperationExecutable contains the actual implementation When the Operation is executed it is instantiated by the Operation Framework and the Operation is provided so the OperationExecutable can access the information it needs If the Operation accesses any Stores the Stores should be declared using the declareStore method When the Operation is executed the OperationExecutable will receive a Map containing Sessions for all the involved Stores These Sessions can be used to perform persistence actions on those Stores Some abstract partial implementations are provided in the com emc documentum xml dds operation library basic package which should be extended when creating Operations See Application Framework and Persistence Layer for more information Creating new Services To implement a Service first create an interface containing the API for the new Service This interface should extend the com emc documentum xml dds service Service interface
42. xm1l gt lt include name ditamap gt lt dds xmlfileset gt lt dds blobfileset dir dds garage data collection repository britannica eng locale eng gt lt include name png gt lt dds blobfileset gt lt dds metadatafileset dir dds garage data collection repository britannica eng locale eng metadataextension metadata gt lt include name metadata gt lt dds metadatafileset gt lt dds import data gt security tool Tool for public key cryptography The tool has two functions 1 Generate keys Dynamic Delivery Services User Manual 23 2 Administration Encrypt a password Attributes command either encrypt or generate required privateKeyPath the path to the private key Default value DDSPrivateKey dat publicKeyPath the path to the public key Default value DDSPublicKey dat password the password to encrypt required if command encrypt var the result of password encryption is stored in this attribute Use it as var password required if command encrypt ql enGinypie DESERO gt lt dds security tool command encrypt privateKeyPath S application bin dir DDSPrivateKey dat publickeyPath application bin dir DDSPublicKkey dat password secret var password gt lt echo message S password gt lt a create new keys gt lt dds security tool command generate privateKeyPath S application bin dir DDSPriv
43. 2 follows Brake Lever Location Affected Gears Left Right This lever operates the front brake This lever operates the rear brake Note External application view is not supported in the demo application Dynamic Delivery Services User Manual 122 DEMO APPLICATIONS 5 The demo application makes it possible to view printable PDF renditions of Process Data Modules p Ba Draiman Peds iabe suit yoa are bariai wih f barabana dissipan of a bepoke daaa AC SR E A AA eos ca 4 8 DOE ar FAA a of a aj Biik Enter piui faatia iaai Erie piui mye age Did ou eee fide a bespoke Tas di painea H He Age imal be wie 2 le 100 Al bedi ate itmedalory nalega iepa l Taglib demo Developers can use a library of DDS specific tags in JSP based client applications A simple demo application demonstrates the usage of these tags Building and running the application In order to run the Taglib demo application first build the garage demo and load its data into XML Store This is because the Taglib demo is based on the garage data After this perform the following steps in DDS bin 1 Build the application dds ant build Dapplication taglib demo 2 Create the application WAR file DDS build taglib demo taglib demo war and deploy it in a servlet container dds ant create war Dapplication taglib demo 3 If not otherwise configured the application will be availa
44. 4 Click OK to proceed e Click Cancel if you want to abort the operation The object is removed from the current library Dynamic Delivery Services User Manual 103 DDS Admin Client Working with libraries Library objects have a number of properties options and functions in common Properties include Name Type and Path Within a library any given name can only be used once because the name of an object serves as a unique identification You can set library options when you create a new library Libraries can be created as a separate action or by uploading a zip file If the zip file contains a folder that has no corresponding library The library is created automatically You cannot change the options of an existing library Available options include Lock with parent indicates whether the new library locks with its parent Documents do not lock with parent indicates whether documents in the new library do not lock with the parent Concurrent namebase indicates whether the namebase of the new library can be modified concurrently Concurrent library indicates whether the new library can be modified concurrently Library functions apply to the currently selected library and include e Add library add a library object e Add XML document add or upload a single XML document with validation e Add BLOB add a non XML document e Upload ZIP file Upload a structured ZIP file e Rename change the name of the current li
45. ATA DS1 Collection en_US MyDocuments Chapterl doc DATA DS1 Collection en_US Metadata MyDocuments Chapterl doc DATA DS1 CollectionMetadata en_US MyDocuments id 2 and DATA DS1 Collection fr_FR MyDocuments Chapterl doc DATA DS1 Collection fr_FR Metadata MyDocuments Chapterl doc DATA DS1 CollectionMetadata fr_FR MyDocuments id 2 where id 2 represents the nameless XML Document In an XQuery the connection between these files would be found through the use of the XML Store builtin Metadata and the dds subscription element key e XML Store Builtin Metadata Services Framework The Service Framework provides a backbone structure for developing Services which can easily be managed at runtime It provides a number of standard facilities for configuration and management Concepts A Service is a facility which offers functionality within the context of an Application see the Application Framework documentation A Service can be used within an Application as well as by other Services for example an E mail Service could query the User Service to obtain the e mail address of a User and by clients A Service typically has a Java API codified in an interface The Service APIs are extensible and can be wrapped to expose Services to clients through GWT and other protocols SOAP RMI WSDL etc Service return objects are serializable Services have a built in lifecycle model for managing Services at runti
46. Bases contains a list of XBaseAssociations associating a filter class with an xBase Id The class attributes should contain the full class name of the processor or filter class If the processor or filter has any additional configuration they will be present as child elements What these are depends on the processor or filter The XBases should have been defined in the XBases configuration file Usage Dynamic Delivery Services User Manual 64 API Frameworks and Services Response Content The XML in the Response can have any structure but for typical Responses we strongly recommend the following simple structure lt entry gt lt requestId gt Request Id lt requestId gt lt contextId gt Context Id lt contextId gt lt time gt Submission Time lt time gt lt keyl gt Value 1 lt key1 gt lt key2 gt Value 2 lt key2 gt SPEERIN If possible the Response should be modeled as a set of key value pairs where the keys are used as the tagnames of the child elements of the root entry element and the values are stored in the content of those child elements By sticking to this simple structure it will be possible in future versions to take advantage of some additional functionality in for instance the LogBases into which Responses can be stored These functions will expect this type of XML structuring The recommended fields are e requestld a String identifying the original Request which triggered the Response Th
47. CATIONS This menu offers two search options e Britannica to search for documents in the Britannica data set A search form will appear allowing the user to enter a search term All documents in the Britannica data set containing the search term will be displayed in the content panel x m a Type Any bi Area Any g Country Any z Search Term e Garage to search for documents in the Garage data set A search form will appear allowing the user to search for documents where the title is equal or is not equal to the specified title The results will be displayed in the content panel x eq Title p DDS Kitchensink demo DDS comes with a demo application kitchensink including source code to show usage of GUI components It uses a tabbed view to organize its user interface in the style similar to the original GWT Kitchen Sink demo Building and running the application In order to run the Kitchensink demo application perform the following steps in DDS bin 1 Build the application Dynamic Delivery Services User Manual 118 DEMO APPLICATIONS dds ant build Dapplication kitchensink 2 Load sample data dds ant load all data Dapplication kitchensink 3 Create the application WAR file DDS build kitchensink kitchensink war and deploy it in a servlet container dds ant create war Dapplication logicengine 4 Unless otherwise configured the application will be available at http localhos
48. DOCUMENT_NODE new AsyncCallback lt List lt SerializableNode gt gt public void onSuccess List lt SerializableNode gt result Handle the list of SerializableNode objects her public void onFailure Throwable caught Handle exceptions here e GWT Services e Persistence Layer GWT Resource Service The GWT Resource Service provides Developers with the ability to resolve resources from the server side classpath Classpath resources are referred to using separated path names such as com example resources data xml This is codified in the com emc documentum xml gwt client rpc ResourceServic interface which provides the following methods e getResourceAsString returns the specified classpath resource and returns its content as string e getResourcesAsString returns the specified classpath resources and returns their content as a string array The following example demonstrates the usage of the Resource Service in a GWT client application ResourceServiceAsync resourceService DDSServices getResourceService nameArray new String com example resources data xml com example resources data2 xml resourceService getResourcesAsString nameArray new AsyncCallback lt List lt String gt gt DULAC void mon Sue eCe ss hist Srringa restric 1 Handle the list of strings here public void onFailure Throwable caught Handle exceptions here
49. DSXProc provides accessors to the following Dynamic Delivery Services User Manual 70 API Frameworks and Services e XProc processor the XProc processor itself The processor provides APIs for creating a new XProc pipeline executing a pipeline etc e Session pool the session pool provides the XProc resolver and writer modules with the ability to create and reuse Sessions The session pool also keeps track of all Sessions that have been created while interacting with the XProc processor e Open sessions the collection of all Sessions that have been created while interacting with the XProc processor XProcService The XProcService interface com emc documentum xml dds xproc XProcService provides the following method e newXProc this method returns an XProc object that represents a DDS aware wrapper on top of the XProc processor itself AbstractDDSResolverModule Abstract implementation of the XProc resolver interface com emc documentum xml dds xproc AbstractDDSResolverModu1e that provides basic integration with DDS Extend this class if you want to implement a custom resolver module The DDS aware resolver module provides accessors to the following e DDS application the Application object e DDS user the User using the XProc processor e Session pool the session pool associated with the XProc processor AbstractDDS WriterModule Abstract implementation of the XProc writer interface com emc documentum xml dds xproc A
50. EMC Documentum Dynamic Delivery Services Version 6 5 SP1 User Manual P N 300 008 589 A01 Hopkinton MA 01748 9103 1 508 435 1000 www EMC com Copyright 2008 EMC Corporation All rights reserved Published December 2008 EMC believes the information in this publication is accurate as of its publication date The information is subject to change without notice THE INFORMATION IN THIS PUBLICATION IS PROVIDED AS IS EMC CORPORATION MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WITH RESPECT TO THE INFORMATION IN THIS PUBLICATION AND SPECIFICALLY DISCLAIMS IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Use copying and distribution of any EMC software described in this publication requires an applicable software license For the most up to date listing of EMC product names see EMC Corporation Trademarks on EMC com All other trademarks used herein are the property of their respective owners Table of Contents Pretace sc sects sibs aea a Saeed dee eed does en ee 3 Purpose of this MANUal eececeeeeeeneeeeeeeeeneeeeeeeaaaeeeeeeeaaeeeeeeeeaaeeeeeeeaaaeeeseeeaeeeeenenaaeeeeeneaaes 3 CONVE ntin Sisiane eaaa aE evade Sh an a Aaa val ey che tameeageees diay dd ohana eee tisha 3 FRROVISION NISO f i is comics sees T AA E eis Gebesd cet eend ie eae Sete 4 Getting informato M eaaa arara s r ra aa aa Daa a Ara tasbeliee teed seen Eaa a AE aA eaS 4 Introduchon n i aaa aAa eee a ei ee
51. Existing indexes Index suggestions l Delete Jf Select all Jf Unselect all Name Type Options IT FTI for map with namespace null B Full Text Index B Concurrent T FTI for topic with namespace null 2 Full Text Index B Concurrent T DDS Internal Index Locale values A Metadata Index B Concurrent I DDS Internal Index Subscription ele A Metadata Index B Concurrent I Library Id Index B Library Id Index B Concurrent I Library Name Index 2 Library Name Index B Concurrent For each index the following information is shown e Name the name of the index e Type the type of the index By hovering over the Type column icon of the selected index you can see additional information of the index definition e Options the options of the index By hovering over the Options column icon of the selected index you can see a popup containing all index options e Disk pages the number of pages the index uses on disk Disk pages 2 901 3 11 2 2 The example below shows the extra information you will see when you click on the icon just before the options column of the second index in the list The extra information shows the list of all index options Dynamic Delivery Services User Manual 107 DDS Admin Client Existing indexes Index suggestions Delete Select all Unselect all Name Type Options Disk pages FTI for map with namespace null B Full Text Index A Concurrent 2 IE FTI for topic with names
52. LICATIONS lt applicationName gt resources xforms This is necessary because XForms scripts can consist of multiple files Data sets Each data set is stored in a single library named after the dataset which should be placed inside the library DATA So a data set called garage would be stored in a library DATA garage Additionally a configuration file with settings for the data set is created in the same location For a data set called garage this would be called garage xml in the DATA library A data set is assumed to be composed of two groups of files the actual content files and their metadata files The content files are stored inside a sub library called Collection and the metadata files are stored inside a sub library called CollectionMetadata So if there are two data sets say garage and britannica their libraries would be e DATA garage Collection e DATA garage CollectionMetadata e DATA britannica Collection e DATA britannica CollectionMetadata If the data set contains files from multiple locales each locale in the collection will add another sub library to the previous structure The name of this sub library is the name of the locale itself So if the britannica dataset had two locales en_IN and fr_FR that would give e DATA britannica Collection en_IN e DATA britannica Collection fr_FR e DATA britannica CollectionMetadata en_IN e DATA britannica CollectionMetadata fr_FR
53. Paused State is reached when the Pause Action has been triggered Allowed actions none When the Service has successfully completed processing the State automatically goes to Paused If processing results in any failure the State automatically reverts to Running In Pausing State calling any of the Service methods should normally result in a ServiceNotReadyException Dynamic Delivery Services User Manual 56 API Frameworks and Services Paused When Paused a Service does not perform any processing unless configuration or administrative Service methods are called Paused state results from a succesful Pause Action and from a failed Resume Action Paused State allows for reconfiguration or administration in a controlled way without Stopping the Service avoiding concurrency issues etc Allowed actions are Resume and Stop which change the State to Resuming or Stopping respectively In the Starting State calling any of the public Service methods should normally result in a ServiceNotReadyException However some configuration or administration methods may still be available Resuming When Resuming a Service will perform any processing necessary before going to the Running State The Resuming State is reached when coming out of the Paused State Allowed actions none When the Service has successfully completed processing the State automatically goes to Running If processing results in any failure the State au
54. Response Service yy ianari teas tine sees eden iaiaaeaia ative es anai ae 63 LOGGING FramewolK erosia eoin whet shaw leade jpedyads Usa dhadeh E O hanes eed ueehnaahete 66 KBA FLAMOWOLK wsstceccess ssceneeteaaceneesdsiacads leasaceedeelys cshuetuagscaeddessactesacaa sed E 68 KP LOG SCTVICE 2 eee a cee re creas ot aes tat ed neal erate aad aioe ana eee As 70 XProc Service Configuration ccececceceeeeceeeeeeeeeeeeeeeeeecaeeseeeeeeeeaeeeseaeesseeeseenaeeseaes 72 Dynamic Delivery Services User Manual 1 Logic Engine ServiCe piirini aueri aiaa aaa aaa a aaan iana aiaa aaea aaas ak daas 73 Logic Engine Service Configuration seessesesessessrresrtssirtetietrristrrnssrisssrnssrnnsnn nent 76 BIDADI n IEEE A E A E agent earn ARNS 77 Client Services Goma a ed a a ad ie 80 GW SOLVIGES E AE E EE E A ET 80 GWT Widget Elbrary a r sia ations coins laa a aaa aa aa T aa a ein Aaa 84 GWT AppliGation OOOO a a ma a a r ra E ra aaa a a aa aa A rA a araa a Ea aAa Ea aA aT Gane Ea 85 GWT USen Service siosio a a a Ae ie aa a a aaa las 86 GWI Log Center ServiGe a aa T a aaa aa a a aa abhi ey aa a aa aR a aaa aa a aA gT 86 GWT Persistence Services sc26 aa iea ae aa a a iaa a a a aa 87 GWT XML Persistence ServiCe ccccceceecceesneeeeeeeeeeaaeeeeeeeceaaeseeeeeseeaeseeeaeesseaeeeeeaeeneaees 87 GW JR Source Service i cn Avatad ahaa dad at alah eal eine 88 GWI INGEXSSSRVICC rra r Ta a Fels teed les aa r a aa a ra aaa a a aA aa aaraa AEn EERE 89
55. S doc These files include eula txt License agreements third party licenses txt api index html API documentation for developers Dynamic Delivery Services User Manual 4 Introduction Introduction Features Dynamic Delivery Services DDS EMC Documentum Dynamic Delivery Services DDS provides means for producing XML delivery applications with minimal development effort running in a web browser served by a scalable delivery platform based on EMC Documentum xDB DDS is suited to organizations that need to deliver large and varied quantities of personalized content Below is a summary of main product features Features of Dynamic Delivery Services DDS Service Pack 1 introduces several new features e File System support Windows and UNIX file systems can be used for data storage Support for EMC Centera XAM eXtensible Access Method can be used for data storage for example with EMC Centera systems e Support for metadata storage and retrieval e Support for dealing with information supplied by end users A new User Supplied Information USI framework can be used for dealing with the reception and processing of information supplied by end users for example comments votes ratings etc Features already present in previous DDS versions include e Easy to install and use After installation take a few hours for familiarization and your first basic XML delivery application can be up and running from day one
56. Services User Manual 110 DDS Admin Client 7 Click the Create button A message is displayed while indexes are being generated At the end the message Indexes were successfully created should appear 8 Close the message box The new index es are added to the Existing indexes list Note You cannot select or change index suggestions that correspond to created indexes Related links e Changing Index suggestion options e Data Analysis Changing Index suggestion options The following index options are supported Compressed General The indexes will be stored in a format that saves disk space but may cost more CPU time to update This is currently only implemented for non concurrent indexes Unique keys General All keys of the index must be unique otherwise an exception is thrown Only non concurrent indexes can have unique keys Get All Text Full Text The element is indexed by its string value which is computed from the string value of all descendant nodes If not set the element can only have text child nodes but will result in faster index updates Include Attributes Full Text If set words that are part of the attribute values of the elements being indexed will also be indexed Has no effect on full text indexes placed on attributes Support Phrases Full Text If set the index will be optimized to perform phrase queries at the cost of a larger index Leading Wildcard Full Text If set the index will be able to e
57. Services getPersistenceService persistenceService copy sourceURI targetURI new AsyncCallback lt Long gt public void onSuccess Long result Handle the Long result here public void onFailure Throwable caught Handle exceptions here DE Resource service The Resource service interface com emc documentum xml dds gwt client rpc persistence ResourceService provides a GWT RPC interface for retrieving resources from the server side class path A resource is some data text xml etc that can be accessed by class code in a way that is independent of the location of the code The resources are referred to using separated path names such as com example resources data xml Resource service example ResourceServiceAsync resourceService DDSServices getResourceService nameArray new String com example resources data xml com example resources data2 xml Dynamic Delivery Services User Manual 82 Client Services resourceService getResourcesAsString nameArray new AsyncCallback lt List lt String gt gt public void onSuccess List lt String gt result Handle the list of strings here public void onFailure Throwable caught Handle exceptions here User service The User service interface com emc documentum xml dds gwt client rpc application UserService provides a GWT RPC interface for resource related functionality User
58. Stopped a Service can be configured Stopped State also results from a succesful Stop action and from a failed Initialize action The only allowed action is the Initialize action which changes the State to Initializing In the Stopped State calling any of the public Service methods should normally result in a ServiceNotReadyException Calling configuration methods should succeed while the Service is Stopped Administration methods may or may not be allowed depending on whether or not they need initialized data structures When not allowed these methods should throw a ServiceNotReadyException Dynamic Delivery Services User Manual 55 API Frameworks and Services Initializing Initializing State results from the Initialize Action In Initializing State a Service will e check its dependencies for example whether all resources needed by the Service are available e activate the configuration e build the internal data structures Allowed actions none When the Service has successfully completed all tasks described above its State automatically goes to Initialized If any of these tasks fail for example because a configuration file was not found or a database was not accessible the State automatically reverts to Stopped In the Initializing State calling any of the Service methods should normally result in a ServiceNotReadyException Initialized When Initialized the Service is ready to be started This State results
59. Store gt lt alias gt main lt alias gt lt id gt MyDatabase lt id gt lt type gt XDB lt type gt lt defaultStoreUser class XDBStoreUser gt lt id gt Administrator lt id gt lt password gt secret lt password gt lt administrator gt true lt administrator gt lt storeAlias gt main lt storeAlias gt lt defaultStoreUser gt lt bootstrap gt xhive localhost 1235 lt bootstrap gt lt cachePages gt 10000 lt cachePages gt lt mainStore gt lt serviceConfigurationReference gt lt path gt APPLICATIONS garage configuration lt path gt lt name gt Services xml lt name gt lt serviceConfigurationReference gt lt bootstrap gt This Bootstrap example configures an Application with Dynamic Delivery Services User Manual 43 API Frameworks and Services e name demo e an XDB Store as Main Store with main as Store Alias The default StoreUser has Administrator as User Id and secret as password The URI of the XDB bootstrap file which connects the application to the database is xhive localhost 1235 The default StoreUser should be an administrator level StoreUser in the Main Store to allow it to perform Administrator functions such as creating StoreUsers The example also references the Service Configuration file with full path APPLICATIONS garage configuration Services xml The configuration files are always stored in the Main Store To actually configure the Applicatio
60. WT client components to use the DDS Services Application amp User Central to the server of an Application is the Application Framework which contains the Application object The Application object represents the server component and offers access to the server resources and facilities The Application is configured using the application bootstrap xml document which contains the minimum of information needed to start up the Application including references to other configuration files needed by the Application to set up its resources and facilities End users of the Application are represented by the User concept This concept models an end user of the DDS Application as opposed to for example the user concept of a database that is accessed by the Application See Application Framework for more information Dynamic Delivery Services User Manual 25 API Frameworks and Services Data Access An important function of an Application is to provide access to data which can be in various facilities databases file systems etc The Persistence Layer transparently models such storage facilities by means of the Store concept which can represent a database a file system a Documentum Store etc Locations and Containers represent the equivalents of folders and files that is of a hierarchical organization of places where documents can be stored and of the documents themselves For XML data the XML Node concept provides acces
61. a Module ensuring that requisite steps in a procedure or process are followed in proper order The interface can help the end user by supplying additional information and by interfacing to external systems or devices as well as by producing PDF documents Dynamic Delivery Services User Manual 6 Introduction Benefits for existing customers Documentum Content Server customers Owners of an EMC Documentum Content Server Platform can conveniently use Site Caching Services SCS to incrementally publish content and metadata to the storage facilities included in EMC Documentum Dynamic Delivery Services DDS for use by DDS generated delivery applications SCS has been enhanced to offer the ability to install and configure xDB on target host machines X Hive DB customers Organizations having solutions based on XML Store or on X Hive DB 8 can simply integrate DDS into their current system significantly enhancing their publishing capabilties Getting familiar with the product As a user you should know how to use the product for your own purposes This will be easier if you understand the concepts that apply to your situation Before you start using the product you should know how to develop web applications using Java and XML Background information The product is developed in Java and uses EMC Documentum xDB as XML Store Third party software required for development includes e Apache Tomcat e Apache Ant e Google Web Toolk
62. ableXMLSource gt sources output getXMLSources result for SerializableXMLSource source sources Process each SerializableXMLSource object Handl rrors encountered during pipeline execution public void onFailure final Throwable caught GWT Logic Engine Service Developers can use the GWT Logic Engine Service for a GWT front end for the Logic Engine Service This is codified in the com emc documentum xml dds gwt client rpc le LogicEngineService interface which provides the following methods e initProcess starts a new Process Data Module instance e releaseProcess aborts a running Process Data Module instance e processExists checks whether an instance of a Process Data Module exists Dynamic Delivery Services User Manual 91 Client Services isProcessFinished checks whether a Process Data Module instance has reached the final process state currentProcess View returns the current view on a Process Data Module Instance previous navigates to the previous step of a Process Data Module instance and returns the new process view next navigates to the next step of a Process Data Module instance and returns the new process view cancelDialog cancels a dialog of a Process Data Module instance and returns the new process view submitDialog submits a dialog of a Process Data Module instance and returns the new process view setFillinValue sets a value for a fill in
63. ace provides the following methods e beforeRun to be executed before the action proper is executed It is provided to create superclasses with common setup behaviour needed before the action proper is executed and which may need to be extended or overridden e afterRun to be executed after the action proper is executed It is provided to create superclasses with common teardown behaviour needed after the action proper is executed and which may need to be extended or overridden e run executes the action and returns the Result or throws an OperationFailedException if the Operation could not be executed e rollback will roll back the Operation if it supports rollback OperationManager The OperationManager interface com emc documentum xml dds operation framework OperationManager provides the following method e execute executes an Operation and returns the Result SessionStoreUserStrategy The SessionStoreUserStrategy interface com emc documentum xml dds operation framework SessionStoreUserStrategy provides accessors to the following OperationExecutable properties e Fallback Strategy a contained SessionUserStrategy which can be configured as fallback If the Strategy cannot determine a StoreUser the fallback Strategy will be used instead The SessionStoreUserStrategy interface provides the following method e getStoreUser returns the StoreUser which should be used for a given Application User and Store If no suc
64. ager component which has been instantiated by the Application and which can be used to access the Services configured for the Application see the Service Framework documentation e Store Manager is a reference to the StoreManager component which has been instantiated by the Application and which can be used to access the Stores configured for the Application see the Persistence Layer documentation e XBase Manager is a reference to the XBaseManager component which has been instantiated by the Application and which can be used to access the XBases configured for the Application see the XBase Framework documentation The following methods are provided e getDefaultPersistor and setDefaultPersistor allow the developer to set and retrieve a default Persistor associated to a specified Store Dynamic Delivery Services User Manual 40 API Frameworks and Services execute is a convenience method wrapping the corresponding method from the OperationManager e getService is a convenience method wrapping the corresponding from the ServiceManager e getStore is a convenience method wrapping the similar method from the StoreManager e getXBase is a convenience method wrapping the similar method from the XBaseManager StoreManager Interface The StoreManager interface com emc documentum xml dds application StoreManager provides the following methods e getStore retrieves the Store object with the specified alias e getStores
65. ain DataSets with the same Id the alias is used to distinguish them to the Application Using the XBases Configuration When an Application starts the XBases Configuration is used to start the XBaseManager class Any XBases that must be available should be configured in the XBases Configuration The example below shows a basic XBases Configuration indicating two XBases that will be available in the Application lt xbases gt lt LogBase gt lt xBaselId gt Rating lt xBaseld gt lt storeAlias gt main lt storeAlias gt lt storeUserId gt Administrator lt storeUserlId gt lt baseName gt Rat ing lt baseName gt lt location gt APPLICATIONS myApp XBase lt location gt lt strategy class SingleFile gt lt LogBase gt lt xbases gt This declares one LogBase with Id Rating It is located in the store with StoreAlias main The baseName is the prefix that will be used for the actual Documents created in the database in this case the name will be Rating db The Location indicates where the LogBase files will be created The Strategy specifies the StorageStrategy SingleFile means that all submitted entries will be stored in a single Document Dynamic Delivery Services User Manual 47 API Frameworks and Services Structures Framework The Structures Framework provides concepts for the organization of data in the underlying Stores Note The Structure Framework API is experimental and subject to changes i
66. ains some additional abstract methods which should be implemented Dynamic Delivery Services User Manual 53 API Frameworks and Services checkDependencies should check whether all resources needed for initializing the Service are available Typically at this time references to these resources are stored inside the Service if needed The method returns a boolean indicating whether the check was successful If not the initialize method by which it is automatically called will fail executeInitialization should contain all processing which should take place in the Initializing State except of course what is covered by the checkDependencies method which is executed just before this method executeStartup should contain all processing which should take place in the Starting State executePause should contain all processing which should take place in the Pausing State executeResume should contain all processing which should take place in the Resuming State executeShutdown should contain all processing which should take place in the Stopping State Implementing a Service To implement a Service developers should proceed as follows 1 2 3 Create the interface for the Service The interface should contain all required public and administrative methods Create a subclass of ServiceImpl which implements the interface from the previous step implementing the abstract methods providing the needed propert
67. amap 5 sequence ditamap E deu XML Store Builtin Metadata The XML Store holds builtin metadata on data sets dds subscription element Each file in DDS is expected to have a unique identifier called subscription element This is stored in XML Store Builtin Metadata both for items in Collection and in CollectionMetadata and serves as the link between a metadata file inside CollectionMetadata and its content file inside Collection The content data and its metadata are stored in parallel structures so why do we need an XML Store Builtin Metadata field to link the content entry with its metadata Because if a folder has metadata and content files inside of it we cannot have an XML Document in the same path in the Dynamic Delivery Services User Manual 13 Administration CollectionMetadata In such a case the metadata of the folder will be placed inside a nameless file inside the folder and linked back to the content file through the dds subscription element key dds locale The locale to which each file belongs is also set in the XML Store Builtin Metadata through the key dds locale dds content path The original content path of each file inside a data set is stored in the XML Store Builtin Metadata through the key dds content path A Development Process Example Developers of web applications can use DDS in various different ways A typical web application will include e content in an XML database e aweb app
68. amework through asynchronous remote procedure calls RPC The GWT Client API uses the GWT Services layer GWT Services are built on top of the Service Framework see Services Framework They include e Application service e II8N service e Index service e Log Center service e Logic Engine service e Persistence service e Resource service e User service e XQuery service e XML Persistence service e XProc service See the DDS JavaDoc documentation for a full overview Note The examples below do not cover all methods or functionality of every service Interfaces GWT Services have been codified into interfaces in the com emc documentum xml dds gwt client rpc package The Services utility class com emc documentum xml dds gwt client rpc DDSServices can be used to easily get a remote service Application service The Application service interface com emc documentum xml dds gwt client rpc application ApplicationService provides a GWT RPC interface for application related functionality Application service example ApplicationServiceAsync applicationService DDSServices getApplicationService applicationService getApplicationContext new AsyncCallback lt SerializableApplicationContext gt public void onSuccess SerializableApplicationContext result Handle the SerializableApplicationContext result her public void onFailure Throwable caught Handle exceptions here Dynamic Delivery Services Us
69. anual 35 API Frameworks and Services example when you need to create Sessions and call the Persistor directly notably for fine control over transactions Note An important aspect of working with the Persistence Layer is that not unlike the java io File class there is no close coupling between the Store Location Container and XMLNode objects on one hand and the actual storage facility on the other hand This loose coupling means that creating Store Container Location or XMLNode objects or changing them including setting their Options does not affect the storage facility at all and vice versa Only the action methods of Persistor or XMLPersistor can actually affect the storage facility or retrieve information about it Note Persistors Locations or Containers for different types of Store are not compatible with each other For example LocationOptions for different types of Store will often be incompatible If you construct a Location on an XDB Store using its getLocation method you will not be able to use that object with the create method from a Persistor on a file system Store such a call will throw an InvalidStoreException Using the Persistence Layer The Persistence Layer allows the Developer to persist retrieve and manage its data if finer control over transactions is needed than what is provided by the corresponding Operations Working with Sessions Note The Operation framework manages Sessions transparen
70. ar Double clicking on the Map element brings up a dialog which allows the user to specify a new title for the DITA Map To delete a topic from the Map select the topic and press the delete key on the keyboard Selecting the Map or its contents will display the Map in the view panel Note When you are editing a DITA Map which has been loaded from the database or which has been saved to the database any changes to the Map are immediately stored in the database View panel The view panel contains a number of tabs depending on the type of document being displayed For Topics Concepts and Tasks an HTML tab and an XML tab will be displayed For DITA Maps an additional PDF tab will be available To view a rendition of the selected document top a certain format the corresponding tab must be clicked Button bar The button bar is used to switch between DITA document types in the content panel Clicking on a DITA document type will cause the content panel to display all DITA documents of that type in the current data set If search results are displayed when a button bar button is clicked they will be discarded Menu bar Dynamic Delivery Services User Manual 116 DEMO APPLICATIONS Document menu Mew Load Save As Delete New allows the user to create anew DITA Map A new empty and unsaved DITA Map will be created in the publication panel If the publication panel contains an unsaved DITA Map that map
71. assume an Application with the following specifications e asingle store with alias xmlstore e two data sets one with alias dat aset1 default and one with alias dataset2 e dataset1 contains two locales en_US default and cs_CZ e dataset2 contains no locale information e The default URI resolver implementation is used Dynamic Delivery Services User Manual 78 API Frameworks and Services A resource in the default data set default locale dds tasks task001 xml A resource in the default dataset locale cs_C2Z dds LOCALE cs_CZ tasks task001 xml A resource in dataset2 dds DATASET dataset2 chapters chapter7 xml A resource in the default dataset default locale applying an XPointer expression dds tasks task001 xml xpointer node 2 Referring to a Location resource in the default data set dds chapters Referring to an application resource dds DOMAIN resource xproc xsl transform xpl A resource in the application user s personal folder dds DOMAIN user preferences xml Generating URIs in an XQuery declare namespace dds http www emc com documentum xml dds lert Sieyeysles s 554 8 get the mocks g return dds generate uri node For more examples see the DDS demo applications Dynamic Delivery Services User Manual 79 Client Services Client Services GWT Services The GWT Services framework provides access to the functionality of the Service Fr
72. ateKey dat publickeyPath application bin dir DDSPublicKkey dat gt Dynamic Delivery Services User Manual 24 API Frameworks and Services API Frameworks and Services Core concepts This chapter introduces core concepts gives an overview of the development process and describes the DDS Services Frameworks and some other amenities Server and client A DDS Application can typically be seen as having 2 major components e a server which provides back end functionality through Services e aclient which uses the Services to provide functionality to the end user The client typically offers a user interface and DDS provides facilities to build user interfaces which are integrated with the functions offered by the Services The server typically manages data storage and retrieval and provides among other things an abstract layer which allows access to data in a transparent storage independent way The Services on the server can be used by both client and server components To the client they can be exposed using various protocols typically through a Client Service A Client Service therefore wraps a Server Service hereafter simply referred to as Service and makes the functionality of the Service available over a particular protocol In addition to the provided Services it is also possible for developers to build Services of their own Client Services have been provided for GWT as GWT Services a wrapper that enables G
73. ation component responsible for managing XBases Interfaces The Configuration concepts have been codified into interfaces in the com emc documentum xml dds application package Application Interface The Application interface com emc documentum xml dds application Application provides accessors to the following Application properties e Application Name represents the name of the Application which is configurable e Main Store is the principal Store see the Persistence Layer documentation where the Application may keep its configuration including Store configuration for other Stores User information see the User Service documentation etc On initialization the Application connects to the Main Store to retrieve configuration information needed to carry out the initialization e Application User is the User see the User Service documentation which will be used by default for Application actions which need StoreUsers The StoreUsers for this User should have administration rights in their respective Stores unless they will not be used for administrative actions Applications that use only one single StoreUser for all persistence operations can use the Application User for this purpose e Operation Manager is a reference to the OperationManager component which has been instantiated by the Application and which can be used to execute Operations see the Operation Framework documentation e Service Manager is a reference to the ServiceMan
74. be used to generate new private and public keys for encryption instead of using the included default keys The tool can also be used to enter a password The encrypted version will then be shown and can be copied for use in the Application Bootstrap see below 7 Configure the Application Bootstrap The application bootstrap xml file contains the information needed to instantiate and start the Application The following should be supplied e the application name e configuration for the Main Store including a Default Store User which has administrative rights in the Store e the paths to the public and private keys on the file system e the paths to the Stores xml Structures xml and Services xml configuration files in the Main Store e a Default Structure Strategy specifying the layout in the database For details on the format of the XML see Application Configuration 8 Deploy and start the server component of the Application It is possible to develop the client component at this point if all the server processing needs are covered by the standard amenities Adding Server Functionality The following mechanisms are available for adding server functionality e Operations can be used to contain and expose functions that are fairly low level self contained and that should be available in a variety of contexts in the server component e Services can be used to expose higher level functions Typically Service implementations
75. ble at http localhost 8080 taglib demo How it works The Taglib demo application includes nine sample JSPs which are directly addressable For example to run sample5 jsp simply type the following in your browser s address bar e http localhost 8080 taglib demo sample5 jsp The samples are Dynamic Delivery Services User Manual 123 DEMO APPLICATIONS 1 Apply an XSL T transformation to an XML instance in the repository using the transform tag Apply an XSL T transformation on an XQuery result using the transform tag Output an XML instance using the tostring tag Execute an XQuery and process the result using the xquery tag Embed an XForm using the xform tag The form is located in the repository by supplying the DDS URI as well as the locale The URI points to the folder that contains all the XForms documents the XForm instance as well as the layout xml and multiple property files for locales Since there can be multiple locales you have to supply the locale as a parameter to the tag 6 Execute an XProc pipeline with 2 inputs for ports an XML instance which is bound to the default port and a stylesheet which is bound to a port name stylesheet Note The document and the stylesheet are selected using DDS URIs 7 Another XProc but now we input an XML snippet from within the JSP 8 Retrieve a blob from the database through a URI and display it as an image 9 Retrieve a blob from the database throug
76. brary e Delete delete the current library Creating a library ee Select the Applications tab 2 Select the library you want to add to 3 Click the Add library button The Add library dialog appears 4 Enter a new Name 5 If necessary set its Library options 6 Click the Submit button The new library appears at the bottom of the current folder Dynamic Delivery Services User Manual 104 DDS Admin Client Adding a BLOB document A BLOB is a non XML document 1 2 3 Select the Applications tab Select the library you want to add to Click the Add BLOB button The Add BLOB dialog appears Enter a new Name Enter the Upload path file e Enter text into the Upload edit box or e Browse to a file Click the Submit button The document appears in the current library Uploading a ZIP file You can add an entire folder with content into a library by uploading from a structured ZIP file The ZIP file can hold multiple sub libraries and documents the structure of the ZIP file will be replicated in the current library 1 2 3 Select the Applications tab Select the library you want to add to Click the Upload ZIP file button The Upload ZIP file dialog appears Enter the ZIP file path file e Enter text into the edit box or e Browse to a file If you want to allow the upload to replace existing data enable option Overwrite existing data If you want to allow cus
77. bstractDDSWriterModule that provides basic integration with DDS Extend this class if you want to implement a custom writer module The DDS aware writer module provides accessors to the following e DDS application the Application object e DDS user the User using the XProc processor e Session pool the session pool associated with the XProc processor XProcUtils This class contains miscellaneous XProc related utility methods Usage To use the XProcService a reference is obtained from the Application object Get the XProc service instance XProcService xprocService XProcService application getServiceManager getService DDSServiceType XPROC User user ay boolean readOnly true Create a new DDSXProc instance DDSXProc xprocDDS xprocService newXProc user readOnly Get the XProc processor object and run an XProc pipeline XProc xproc xprocDDS getXProc Pipeline pipeline xproc newPipeline new XMLSource PipelineInput input pipeline newPipelinelInput input addInput Source new XMLSource PipelineOutput output xproc run pipeline input List lt XMLSource gt result output getXMLSources result Close all sessions Collection lt Session gt openSessions xprocDDS getOpenSessions j for Session session openSessions Dynamic Delivery Services User Manual 71 API Frameworks and Services session commit XProc Service Configuration To us
78. by the Persistor in the Persistence Framework The necessary parameters are provided in the different constructors For every constructor an alternative constructor is provided which takes a Persistor as argument to enable the use of custom Persistors The com emc documentum xml dds operation library result package contains the various Result implementations This package contains the various Results that Operations can return including BlackBoardResult is returned by an OperationSequence The value method returns a Map whose keys are the Ids of the contained Operations and whose values are the Results of those Operations If the Id of an Operation was null its result is not included in the BlackBoardResult Usage Working with Operations All that is needed is to call the execute method on the OperationManager providing a User as well as the actual Operation The following example creates a Location in a Store with an Operation String storeld a HO CaiteO ne elkO eC cite Ones n User user OperationManager execute user new CreateLocationOperation storeld location false When executing the Operation the Framework will e Instantiate the OperationExecutable corresponding to the Operation e Create a Session for each Store involved for the User e Start the Sessions e Execute the beforeRun method of the OperationExecutable e Execute the run method of the OperationExecutable supplying the Sessions E
79. cations and Containers pointing to data in the DataSet or Locale without having to know in which Store the DataSet is stored or how that Store is laid out Working with DDSDataSets To obtain a Location inside an DDSDataSet the following code can be used DDSDataSet dataSet Application getDataSet dataSetAlias Location location dataSet getLocation foo bar This yields a Location pointing to a physical path inside the Store e If the DataSet has been configured with the DDSStructureStrategy DATA dataSetId foo bar e If the DataSet has been configured with the DocumentumStructureStrategy DATA dataSetId Collection foo bar To obtain a Container inside an DDSDataSet the following code can be used DDSDataSet dataSet Application getDataSet dataSetAlias Container container dataSet getContainer foo bar baz xml This yields a Container pointing to a physical path inside the Store e If the DataSet has been configured with the DDSStructureStrategy DATA dataSetId foo bar baz xml e Ifthe DataSet has been configured with the DocumentumStructureStrategy DATA dataSetId Collection foo bar baz xml Working with DDSLocales To obtain a Location inside a DDSLocale the following code can be used DDSLocale locale Application getLocale dataSetAlias en_US Location location locale getLocation foo bar This yields a Location pointing to a physical path inside the Store e If the DataSet has bee
80. ce e The proces view screen will appear e Resume a running Process Data Module instance e The proces view screen will appear e Terminate a running Process Data Module instance e The proces view screen will appear e View a PDF rendition of a Process Data Module e A popup window with generated PDF will appear 3 At any time you can log out by clicking on Log out in the application menu bar 4 Inthe process view screen you can follow the flow of the current process instance In the demo application the following Process Data Module views are supported Dynamic Delivery Services User Manual 121 DEMO APPLICATIONS e Steps view This view contains textual information organized into a hierarchy of steps Bicycle Riding a bicycle gt Prerequisities Please make sure you are familiar with the functional description of a bicycle Functional description of a bicycle e Dialog view This view contains a dialog Bicycle Riding a bicycle Enter yourname J Age must be within 4 to 100 All fields are mandatory Enter your age Did you ever ride a C Yes bicycle C No e Data Module view This view displays a nested Data Module Bicycle Riding a bicycle gt Brakes WARNING If you operate the front brake without the rear brake you can cause a crash You can decrease the speed of the bike with the brakes You operate the brakes with the brake levers on the handlebar A description of the brake levers Table
81. ce has entered either the Paused or Running State e resume performs the Resume Action and returns an indication of whether the Action was successful It returns when the Service has entered either the Running or Paused State e stopQ performs the Stop Action and returns an indication of whether the Action was successful It returns when the Service has entered either the Stopped Running Paused or Initialized State e fullStartup a convenience method to chain the Initialize Action if successful to the Start Action It returns when the Actions have been performed successfully or have failed The resulting State can be Stopped Initialized or Running Dynamic Delivery Services User Manual 58 API Frameworks and Services OperationExecutable The OperationExecutable interface com emc documentum xml dds operation framework OperationExecutable provides accessors to the following OperationExecutable properties e Application a reference to the Application object in the context of which the Operation is executed e Operation a reference to the Operation object for whose execution the OperationExecutable was created e Can RollBack indicates whether the OperationExecutable can be rolled back This is only true if the OperationExecutable contains specific rollback code and should never be true if the Store has proper transaction support since the rollback will then take place at Session level The OperationExecutable interf
82. ces gt This example declares two Services e the User Service named UserService of ServiceType USER with class com emc documentum xml dds user impl UserServiceImpl e the Token Service named TokenService of ServiceType TOKEN with class com emc documentum xml dds user impl TokenServiceImpl Note that the TokenService declares a dependency on the User Service which means that it will only be started after UserService has started and that it will be stopped before UserService is stopped Using the Stores Configuration When an Application starts the Stores Configuration is used to start the StoreManager class Any Stores that must be available should be configured in the Stores Configuration except for the Main Store which has been defined in the Bootstrap file The example below shows a basic Stores Configuration indicating two XDB Stores that will be available in the Application lt Stores gt lt XDBStore gt lt alias gt first lt alias gt lt id gt MyDatabase lt id gt lt type gt XDB lt type gt lt defaultStoreUser class XDBStoreUser gt lt id gt Administrator lt id gt lt password gt lt password gt lt administrator gt false lt administrator gt lt storeAlias gt main lt storeAlias gt lt defaultStoreUser gt lt bootstrap gt xhive localhost 1235 lt bootstrap gt lt cachePages gt 10000 lt cachePages gt lt XDBStore gt lt XDBStore gt lt id gt second
83. cific part identifies the resource within the context of the target domain represented by the domain descriptor Usually it contains a path to the resource within the target domain It can also contain an optional query and fragment identifier lt path gt lt query gt lt frag gt The URIs are hierarchical and can be relative or absolute In general a URI is said to be absolute if it contains a URI scheme dds if the scheme is not present the URI is said to be relative A URI target represents the target object identified by a DDS URI A URI resolver resolves URIs to URI targets and provides functionality for generating URIs for existing content Applications have access to a URI Resolver implementation that is registered in the application bootstrap A default URI resolver is provided Applications can register custom URI resolvers Applications can use custom URIResolver implementations to provide e for custom domain attributes e custom URI resolution logic URIs can be extended by introducing e new domain attributes e new domain attributes values e new domain specific components Default URI Resolver The default URI resolver defines the following optional domain attributes e STORE Identifies the target domain Store by specifying the Store alias If unspecified the default Store of the application will be used If no default Store exists the URI is potentially invalid and using it may lead to errors e DOMAIN Id
84. cod catch RuntimeException caught LogCenterServiceAsync logCenterService DDSServices getLogCenterService logCenterService exception getClass getName caught new AsyncCallback lt Object gt public void onSuccess Object result Void method so the returned result will be null Dynamic Delivery Services User Manual 86 Related links Client Services public void onFailure Throwable caught Handle exceptions here e GWT Services e Logging Framework GWT Persistence Service Related links The GWT Persistence Service provides the DDS application developers with the ability to access the functionality of the persistence service in GWT client code This is codified in the com emc documentum xml dds gwt client rpc persistence PersistenceServic interface which provides the following methods e createDocument creates an XML document with given URI e createLibrary creates a location with given URI e createLibraries creates locations with given URIs e move moves a store child e copy copies a store child e remove removes a store child The following example demonstrates the usage of the Persistence Service in a GWT client application PersistenceServiceAsync persistenceService DDSServices getPersistenceService persistenceService copy sourceURI targetURI new AsyncCallback lt Long gt public void onSuccess Long result Handle the
85. ct see Serialization Framework which will be used to serialize and deserialized Java objects when they are persisted into or retrieved from the Store by the Persistor The Persistor interface provides the following methods for performing persistence actions on a Store e exists methods check whether the specified Locations or Containers exist in the Store and return the result as a boolean e create methods create the specified Location or Container in the Store The createPath parameter specifies whether or not to create the parent Locations if they do not exist The replace parameter specifies what should happen if the Container already exists if true it will be replaced by the newly created Container otherwise an exception will be thrown The ContainerOptions and LocationOptions set on the Container and Location parameters will be applied e delete deletes the specified Location or Container in the Store e listChildren lists the child Locations and Containers for the specified Location Boolean parameters are included to specify whether Locations and or Containers should be listed and whether descendants should be listed e persist stores the specified Data object into the specified Container e retrieve retrieves the XML from a Container and return it wrapped in a Data object Dynamic Delivery Services User Manual 34 API Frameworks and Services getOptions retrieves the LocationOptions for the specif
86. ction example a transform or tostring should be performed for each result coming from the result set of a preceding XQuery This XQuery must yield a nodeset result In each iteration the context node for the tags embodied by the foreach tag is set to a new node from this nodeset Exceptions If there is any result other than a node in the result set a JspException is thrown lt dds break gt The break tag is similar to the java break statement interrupting the closest enclosing foreach tag lt dds xform gt Dynamic Delivery Services User Manual 95 Client Services The xform tag locates an XForm stored in a DDS Application and displays it in the resulting view A JSP using the XForm tag should include some additional content in the lt head gt section See the samples on what exactly this should be Optional uri Example uri dds DOMAIN resource xforms GarageTitleSearch The URI indicating the location where the documents for the XForm can be found See the Administration chapter for information on how XForms are stored If omitted the context node is used locale Example locale en_US Attribute indicating the locale for the form to select Exceptions If no location is found under the URI a JspException results Also if the location does not contain an XForm a JspException results lt dds xproc gt The xproc tag executes an XProc pipeline stored in a DDS application Nested within this tag can be input option and
87. dds usi ResponseProcessor provides the following method e process processes the Response and returns the Response or the transformed Response if the processor implements a transformation Configuring the ResponseService To configure the ResponseService the Services xm1 file must be edited The following example illustrates the XML fragment that should be inserted lt responseservice gt lt type class DDSServiceType gt RESPONSE lt type gt lt name gt ResponseService lt name gt lt className gt com emc documentum xml dds usi internal ResponseServiceImpl1l lt className gt lt preProcessors gt SHOSLPTOCSessore gt lt processorAssociation gt lt filter class com emc documentum xml dds demo server AllPassFilter gt lt processor class com emc documentum xml dds demo server AverageCalculator gt lt processorAssociation gt lt postProcessors gt lt xBases gt lt xBaseAssociation gt lt filter class com emc documentum xml dds demo server AllPassFilter gt lt xBaseld gt Rating lt xBaseld gt lt xBaseAssociation gt lt xBases gt lt responseservice gt In addition to the normal Service configuration parameters type name and className 3 new sections are inserted e preProcessors contains a list of ProcessorAssociations associating a filter with a processor e postProcessors contains a list of ProcessorAssociations associating a filter with a processor e x
88. dexes for query optimization Icons in the Admin interface Admin indicates object types visually by means of icons Dynamic Delivery Services User Manual 99 DDS Admin Client Application Non XML document blob Navigation Admin manages a repository where you store applications and the content they use Your organization might use multiple repositories Each repository is comprised of nodes that give access to the repository s content and functions Admin displays the repository s nodes in a tree view 1 Select a menu tab By default the navigation pane appears with the top item in the tree selected and displaying the next level of nodes 2 To navigate the repository tree do any of the following e To expand a collapsed node click its plus icon e To collapse an expanded node click its minus icon Note Once you have clicked in the navigation pane you can also use the Up and Down cursor control keys on your keyboard for navigation and the Left and Right cursor control keys to collapse and expand nodes 3 To select a node click its name The corresponding library or document appears in the Info pane Using dialogs If Admin requires additional information for executing a function for example for adding a document to a library it will present a dialog in a separate window The Admin window itself is inactivated until you close the dialog Dialogs have a number of properties in common including
89. documentum xml dds application StructureManager has the following properties e Default DataSet the default DataSet for the Application No particular semantics apply to it It is provided as a convenience for writing applications e Default Locale for a DataSet this is the default Locale for the specified DataSet for the Application No particular semantics apply to it It is provided as a convenience for writing applications For example the same Application could be made available with different URIs with different Locales so that end users automatically get the data in the correct language The StructureManager interface provides the following methods e getDataSet retrieves the DataSet with the specified alias e getDataSets retrieves a list containing all the DataSets available to the Application e getDefaultDataSet retrieves the default DataSet for the Application e addDataSet makes the specified DataSet available to the Application through the specified alias The DataSet must already exist and be available in the specified Store createDataSet methods create a new empty DataSet getLocale methods retrieve the specified Locale from the specified DataSet getLocales methods retrieve a list of the available DDS Locales for the specified DataSet optionally filtered on language or country addLocale makes an existing Locale available to the Application createLocale methods create a new Locale in the specified DataSet
90. e a ee ed 5 FOALUSOS oionn i S i EAEE CE AEAN OEE EAN O ENEE EN 5 Benefits for Existing CUStOMETS 0 0 0 cece eeeeeee eee eeeeeee eee eeeeaaeeeeeeaaeeeeseeaaaeeeeeeeaaeeeeeeeeaeeeeeeeaaas 7 Getting familiar with the product ccccceeeeceeeeeeeeeeeeeeceaeeeseaeeeeeaeeeseaaeeseaeeeesaaeeseeeeeessaeeeseneees 7 Architecture eiior aie cee etnies aAA A ETE AAN abv E cea 7 AdmiNSralON en a a a e an e E aR unc fa E ER R E 10 included Web apPpliCatiONS ser riasa EEA A EAEE EA Oi 10 The Admim AppliCation seier rse E EEE IRET RNE 11 Uploading data into the XML Store c cccecceeeeeeeeceeee cesses eeeeeeeeeeaeeeeeeeeesaeeeseneeesiaeeeeeaeeee 11 XML Store Data Layouten a e a a E 11 XML Store Builtin Metadata ccccccceeeeeeeeeeeeeeeeeeeceeeeeeaaeeeeeeeesaaeeseeeeeesaeeseeneeesiaeeeseaeees 13 A Development Process Example ssssssssssssssrisssssrrsssrirrnssttrnnnstttnnnnttinunnstenuanatnnnnnntnnnnnnennn 14 A test deployment example cccccccceceeccceeeeeeeeceeeeeeeeeeeeeenseeaeeeeensaeceseesnseeeeeeentnneesenenenaes 16 PDS ANtitargets reese tec cited cues tithes eer neho setter ron chit ont a ae ni ieee 17 DDS Ant tasks scenes eds ee aai na dae aa dee deh get ea aaa ed aa A tte cs aia eaaa ea iini 21 API Frameworks and Services cccccccccceccecececescseseaaecesceeeceseeseeesesaaeaeseeeeeeeesceeeeeseeteeaeess 25 COre CONCEPtS yaaa a aea a aa e a a aE aa Aaa aa raaa aae Ta r aa diy ana aea aS 25 Server side Ap
91. e and the application s GWT code under src and put the resulting files in DDS build application e build server will compile all server code under src of the application with the application s jars from its lib folder on the classpath and put the class files in DDS build application Parameters e application run Runs an application in hosted mode Developer Actually this target just invokes the run target in the application s own build xml to be found in applications application bin Hosted mode runs the entire web application in a GWT provided container which hosts the application including the client in Java This is especially useful for debugging GWT applications The application s own configuration files are taken into account e application bootstrap xml e web xml Parameters e application create war Creates a war file for an application for deployment under Tomcat Developer Actually this target just invokes the create war target in the application s own build xml to be found in applications application bin All the application s own configuration files are included in the war e application bootstrap xml e web xml Parameters e application run xforms builder Runs the XForms Builder Developer Make sure EMC Documentum Forms Builder 6 5 SP1 is installed and properly linked to from DDS bin ant environment properties Parameters none Dynamic Delivery Servic
92. e collection of all Sessions that have been created while interacting with the Logic Engine DDSProcessDataModuleRenderer The Process Data Module Renderer interface com emc documentum xml dds le DDSProcessDataModuleRenderer provides functionality for rendering Process Data Modules into printable representations e render this method renders a Process Data Module using a specified output media type The Process Data Module Renderer interface provides accessors to the following e Session pool the session pool provides the Process Data Module Renderer with the ability to create and reuse Sessions The session pool also keeps track of all Sessions that have been created while using the Process Data Module Renderer e Open sessions the collection of all Sessions that have been created while using the Process Data Module Renderer LogicEngineService The LogicEngineService interface com emc documentum xml dds le LogicEngineService provides the following methods e newLogicEngine returns a new Logic Engine object that represents a DDS aware wrapper on top of the Logic Engine itself e newProcessDataModuleRenderer returns a new Process Data Module object AbstractDDSDataModuleResolver Abstract implementation of the Data Module Resolver interface com emc documentum xml dds le AbstractDDSDataModuleResolver that provides basic integration with DDS Extend this class if you want to implement a custom data module resolver The
93. e the XProc service Applications must configure the service in the services configuration file The format of the XProc service configuration entry is as follows lt xprocservice gt lt type class DDSServiceType gt XPROC lt type gt lt name gt XProcService lt name gt lt className gt com emc documentum xml dds xproc impl XProcServiceImpl lt className gt I O configuration XSL formatter configuration lt xprocservice gt The I O and XSL formatter sections are optional In most cases the default XProc service configuration should be sufficient TO configuration In the I O configuration section it is possible to register custom resolver modules used by the XProc engine while resolving resources and writer modules used by the XProc engine while writing resources These modules will be registered in addition to the standard built in resolver writer modules The format of the I O configuration entry is as follows Kalo lt resolverModules gt lt string gt class name lt string gt lt resolverModules gt lt writerModules gt lt string gt class name lt string gt lt writerModules gt S O The classes specified in the lt resolverModules gt and lt writerModules gt must extend classes com emc documentum xml dds xproc AbstractDDSResolverModule and com emc documentum xml dds xproc AbstractDDSWriterModule respectively and must provide a default no argument constructor XSL formatter configu
94. eException caught LogCenterServiceAsync logCenterService DDSServices getLogCenterService logCenterService exception getClass getName caught new AsyncCallback lt Object gt public void onSuccess Object result Void method so the returned result will be null public void onFailure Throwable caught Handle exceptions here Dynamic Delivery Services User Manual 81 Client Services LogicEngine service The LogicEngine service interface com emc documentum xml dds gwt client rpc le LogicEngineService provides a GWT RPC interface for interacting with the S1000D Logic Engine LogicEngine service example LogicEngineServiceAsync logicEngineService DDSServices getLogicEngineService SerializableDataModuleRef dataModuleReference new SerializableDataModuleRef documentURI true logicEngineService initProcess dataModuleReference null new AsyncCallback lt SerializableProcessView gt public void onSuccess SerializableProcessView result Handle the SerializableProcessView result her public void onFailure Throwable caught Handle exceptions here Persistence service The Persistence service interface com emc documentum xml dds gwt client rpc persistence PersistenceService provides a GWT RPC interface for persistence related functionality Persistence service example PersistenceServiceAsync persistenceService DDS
95. eans of identifying Stores to the Application The exact semantics depend on the type of Store and the implementation For example the Store Id for an XDB database is the name of the database In a Windows file system environment the Store Id may be the name of a disk C D In other environments it may not be relevant Store Type an Enumeration constant specifying the type of the storage facility represented by the Store for example file system or XDB database Separator represents the character used to construct paths in the Store For example in an XDB database or on a Linux file system this is the forward slash character On a Windows file system it is a backslash character Default StoreUser the default StoreUser for persistence actions on the Store if no StoreUser has been specified explicitly see SessionStoreUserStrategy It can be configured explicitly in the appropriate configuration file XMLPersistor a Store specific implementation of the Persistor for XML related persistence operations suitable for this Store XQueryExecutor a Store specific implementation of the XQueryExecutor object suitable for this Store The Store interface provides the following methods e getSession StoreUser storeUser creates a new Session for the specified StoreUser for the Store which can be used for persistence actions e getLocation creates a new Location object which is valid in the specified Store with the specified path
96. ecific servlet mappings You can add your own to this file 7 Load application data a Load application specific data for example XForms and Xprocs into the database usually under APPLICATIONS your application name dds ont load application data Dapplication your application name Dynamic Delivery Services User Manual 15 Administration b Load the dataset s usually under DATA some dataset name dds ant load data sets Dapplication your application name Alternatively you can load both application data and its data sets into the database with a single Ant task dds ant load all data Dapplication S your application name 8 Develop your application including client and server side java code using DDS and other development tools as required For GWT follow its recommended client server package structure as applied in the sample applications kitchensink and garage 9 Test the application by creating a war and deploying it see below and or by running it in GWT hosted mode e to run in GWT hosted mode dds ant run Dapplication your application name Note Use deployed mode for performance testing In hosted mode an application will typically run considerably slower 10 If the application runs without errors you can create a war and deploy it for use a Create a war dds ant create war Dapplication your application name This will create the war file of the application in
97. ed Xpointer expression An Xpointer expression is always of the form xpointer XMLNode xmlNode container getXMLNode xpointer library book title Dynamic Delivery Services User Manual 37 API Frameworks and Services Persistence Layer and XDB DDS includes an xDB implementation in the com emc documentum xml dds persistence xdb package The following objects provide extra functionality on top of what is offered by the standard interfaces Session The XDBStore object has some additional properties with corresponding accessors e Bootstrap the URI of the xDB bootstrap needed to connect to the xDB database e Cache Pages specifies how much memory will be allocated to the xDB database driver when it is instantiated See the xDB documentation for details The XDBStore object provides the following methods e getSession returns an XhiveSessionlf object e connect initializes the driver and connects the Store object to the actual database e disconnect closes the driver XDBLibraryOptions The XDBLibraryOptions model the options that can be set on an XDB library Location Note These options can only be specified at library creation time The setOptions method from the XDBStandardPersistor will always throw an Exception The following options can be set for XDB libraries through the XDBLibraryOptions e Concurrent Library e Concurrent Namebase e Documents do not lock with parent e Lock with parent
98. ed on the Service whether it was successful or unsuccessful The following methods are provided for control of the Service lifecycle e initialize performs the Initialize Action and returns an indication of whether the Action was successful It returns when the Service has entered either the Initialized or Stopped State e start performs the Start Action and returns an indication of whether the Action was successful It returns when the Service has entered either the Running or Initialized State e pause performs the Pause Action and returns an indication of whether the Action was successful It returns when the Service has entered either the Paused or Running State e resume performs the Resume Action and returns an indication of whether the Action was successful It returns when the Service has entered either the Running or Paused State e stopQ performs the Stop Action and returns an indication of whether the Action was successful It returns when the Service has entered either the Stopped Running Paused or Initialized State e fullStartup a convenience method to chain the Initialize Action if successful to the Start Action It returns when the Actions have been performed successfully or have failed The resulting State can be Stopped Initialized or Running Implementation The abstract ServiceImpl class com emc documentum xml dds service impl ServiceImp1 provides for the basic implementation of a Service and cont
99. entifies the target domain type Possible values Dynamic Delivery Services User Manual 77 API Frameworks and Services e data The target domain is the data collection of an application data set This is the default value e resource The target domain is the application resources collection e user The target domain is the user s personal folder e DATASET Specifies the target domain data set using the dataset alias Only used if DOMAIN is data If not specified and DOMAIN is data the default data set of the application is used If there is no default data set the URI is potentially invalid and may cause errors e LOCALE Specifies the target domain locale Only used if DOMAIN is data If not specified and DOMAIN is data the default locale of the data set will be used If the data set is locale aware but the default locale cannot be determined the URI is potentially invalid and may cause errors The default URI resolver follows the convention that URIs that represent directory like objects should end with a trailing slash So when referring to Locations the URI must end with a slash if it does not it will be interpreted as a Container The following URIs will therefore resolve to different objects dds dirl dir2 ells s Velt ml eie Interfaces The core URI functionality concepts have been codified into interfaces and classes in the package com emc documentum xml dds uri e com emc documentum xml
100. er Manual 80 Client Services I18N service The I18N service interface com emc documentum xml dds gwt client rpc 118NService provides a GWT RPC interface for internationalization I18N related functionality I18N service example I18NServiceAsync il8NService DDSServices getI18NService i18NService getISO3Languages eng new AsyncCallback lt Map lt String String gt gt public void onSuccess Map lt String String gt result result Handle the map of language codes and language names here public void onFailure Throwable caught Handle exceptions here DE Index service The Index service interface com emc documentum xml dds gwt client rpc xdb index IndexService provides a GWT RPC interface for index related functionality Index service example IndexServiceAsync indexService DDSServices getIndexService indexService getIndexList path new AsyncCallback lt List lt SerializablexDBIndex gt gt public void onSuccess List lt SerializableXDBIndex gt result Handle the list of SerializableXDBIndexIf objects here public void onFailure Throwable caught Handle exceptions here bye Log Center service The Log Center service interface com emc documentum xml dds gwt client rpc LogCenterService provides a GWT RPC interface for logging messages from the client back to the server Log Center service example try Execute some cod catch Runtim
101. er directly styleURI attribute or through an XQuery baseURI plus XQuery Optional uri Example uri dds DOMAIN data DATASET garage LOCALE en_US concepts oil xml The URI indicating the location under which the content to be transformed can be found If omitted the context node is used styleURI Example styleURI dds DOMAIN resource xslt taglib taglibe demo xsl baseURI Example baseURI dds DOMAIN resource xslt taglib xquery Example xquery for x in document taglib demo xsl return x styleURI takes precedence over baseURI xquery Exceptions Dynamic Delivery Services User Manual 94 Client Services If no transformable content or no transformation is found after all these options a JspException is thrown lt dds print gt The print tag copies its body content directly to the page output lt dds xquery gt The XQuery tag performs an XQuery specified in its body content on the current context node see above The result is stored in the page context to be used by other tags when and foreach see below Optional contextNodeURI Example contextNodeURI dds DOMAIN data DATASET garage _LOCALE en_US concepts This attribute sets the context node for the query Exceptions If no contextnode is found either in the page context example as set by a previous contextnode tag or by the contextNodePath attribute a JspException results Also if the context node found is not a LibraryChi
102. ersistor is an object which provides actions that can be performed on Containers and Locations in a Store including e Checking the existence of Locations Containers and StoreUsers e Creating Locations Containers and StoreUsers e Deleting Locations Containers and StoreUsers e Persisting content into Containers e Retrieving content from Containers e Associating Metadata with Containers e Retrieving Metadata associated with Containers An XMLPersistor is an object which provides actions that can be performed on XMLNodes a Store including e Retrieving the number of children of an XMLNode Dynamic Delivery Services User Manual 31 API Frameworks and Services e Retrieving XMLNodes or their children Inserting XML fragments e Moving copying and removing XMLNodes e Retrieving and setting attributes on XMLNodes Interfaces The Persistence Layer concepts have been codified into interfaces in the com emc documentum xml dds persistence package Store The Store interface com emc documentum xml dds persistence Store provides accessors to the following Store properties Store Alias the Application specific identifier assigned to a Store It is configured explicitly in the appropriate configuration file and has to be unique across Stores for the Application Store Id the id of the Store The Store Name models information necessary for the implementation to connect to the correct storage facility itis not used as a m
103. ervice The UserService interface com emc documentum xml dds user UserService provides accessors to the following User property e Users Location the Location where all the User information is stored for the Application This defaults to the Location with path APPLICATIONS lt applicationName gt users in the Main Store The UserService interface provides the following methods e getUsers for retrieval of Users as a Collection e getUser for retrieval of a User by User Id e getHome for retrieval of the Home Location of a User based on the User Id e createUser for creation of Users e deleteUser for deletion of Users e loginUser for logging in of a User e logoutUser for logging out of a User e isLoggedIn indicates whether the User with the specified User Id is currently logged in UserToken The UserToken interface com emc documentum xml dds user UserToken provides accessors to the following UserToken properties e Application Name the name of the Application to which the User logged in e User Id the User Id of the User who logged in e Token Id a unique identifier distinguishing UserTokens for which the other properties happen to be the same e Timestamp the java timestamp at which the User logged in TokenService The TokenService interface com emc documentum xml dds user TokenService provides the following methods e createToken creates a new UserToken based on the specified User and Ap
104. es User Manual 20 Administration DDS Ant tasks DDS includes a set of Ant tasks that are used by DDS Ant targets Administrators and developers can use these Ant tasks for fine tuning tasks and for creating additional Ant targets create dataset import application data import data security tool create dataset Creates a dataset in the database under the DATA library Attributes dataset the name of the dataset required databaseref a reference to the database construct required overwrite indicator that data that already exists in the database should be overwritten If true the data set library is replaced by a new library Default false Note Ifa dataset with the same name already exists and overwrite true the existing dataset will be lost quiet determines what information will be shown on the console If false all import information will be shown If true only warnings and errors are shown Default false localeaware indicator that the dataset is aware of locales If false no locales can be used Default false Nested elements libraryoptions sets library options of the new dataset library Nested element option with attributes name and value Available options e concurrent library default true e concurrent namebase default true e lock with parent e documents do not lock with parent lt dds create dataset dataset S application databaseref demo database localeaware true
105. fficiently search Search for terms with a leading wildcard i e plication This option also improves the speed of searches of the form PREFIX SUFFIX such as cou eracts Setting option does not slow down normal non wildcard searches but it may increase the time required for an index update Support Scoring Full Text If set the index will support scoring This will store extra information in the index about the relevance of the term in the text As there is not Dynamic Delivery Services User Manual 111 DDS Admin Client yet a way to use this information this flag should not be used Adjust To Lowercase Standard Analyzer Full If set the indexed terms will be converted to lower case meaning queries are performed case insensitively Filter English Stop Standard Analyzer Full If set words will not be indexed if they are from Words Text a list of standard English stopwords To change Index suggestion options 1 Navigate to the required Collection on Manage Indexes Note To view index information hover your mouse cursor over the preview icon of an index 2 Select the Index Suggestions tab 3 Select all suggestions you want to change 4 Clck on the Options button The Change Options dialog appears If the selection includes any Value indexes you can only change General Options 5 Set the Options you require 6 Click on the Submit button The new Index options are set on the selected Index suggestio
106. from a succesful Initialize Action and from a failed Start Action Allowed actions are Start and Stop which change the State goes to Starting or Stopping respectively In the Initialized State calling any of the Service methods should normally result in a ServiceNotReadyException Starting When Starting a Service will perform any processing necessary before going to the Running State However in many cases no special processing takes place Starting State is reached when the Start Action has been triggered Allowed actions none When the Service has successfully completed processing the State automatically goes to Running If processing results in any failure the State automatically reverts to Initialized In the Starting State calling any of the Service methods should normally result in a ServiceNotReadyException Running When Running a Service is fully operational and accepts and processes API method calls In some cases the Service may have its own thread and perform continual processing or accept requests which are performed asynchronously by the thread Running State results from succesful Start or Resume Actions and from failed Pause or Stop Actions Allowed actions are Pause and Stop which will switch the State to Pausing and Stopping respectively Pausing When Pausing a Service will perform any processing necessary before going to the Paused State However in many cases no special processing takes place
107. g an XML GOCUMENT sorene aea aini Aat aeia ea aA NAE aE EEEa 106 Working with Existing INGOX S o rnuiiinuiiieirieia arini uiine anaia iaaa 107 Deleting INDOXCS Srne a a a a A a E 108 Working with Index suggestions ssssesssssesesrresssrrnaesrnnnnnsntnnnnnnnnnnnnnnnnnnnntnnnnnnnnnannnnannnana 108 Data AMalySiS n ac eeetenecspesi ie Soke tet N A seas ghd denen eee ev 109 Greating andek riaren aianei aria a ked aaia Aaaaoi iana 110 Changing Index suggestion options ceeeceeeseeeeeeeeeeeeaeeeeeeeeeeaaeeeeeneeeteaeeetenaeeeee 111 Resetting Index SUGGESTIONS isessiiraeek arrana an ae RE AE EEE REA ERRES EET 112 DEMO APPLICATIONS vinen iana aai oe ai a aiaiai aa aa 113 Garage JEMO wii iie a i ia Aa Ate ee eee SA eee aae daada diea 113 Using the Application sasear aana iiag iaei a i a a 114 DDS Kitchensink dOM0 i ccisiceccesecsey ainina iie ii ieii ii i idi a a ia 118 Logic Engine COMO sasaeias iiano e ea i i dante AEEA AEEA NE AEA EA 120 Taghib AO M0 sonera einai nia tends cue ceded laced eae ENEE OEA EAA EE NEA 123 Dynamic Delivery Services User Manual 2 Preface Preface Purpose of this manual This manual provides information about EMC Documentum Dynamic Delivery Services DDS The manual contains the following chapters e Introduction gives a short introduction to the product e Administration information on administration and development of applications e API Frameworks and Services describes main concepts and ser
108. g similar Entries in a single document The LogBase is an implementation that covers the append only case which means it behaves much like a logfile or a set of log files to which data are appended but no updates are performed To manage the XBases the XBaseManager provides for configuration and retrieval of XBases The XBaseManager and its configuration are described in the Application Framework documentation Interfaces The Structures Framework concepts have been codified into interfaces in the com emc documentum xml dds xbase package XBase The XBase interface com emc documentum xml dds xbase XBase provides accessors to the following XBaseproperties e Id the unique identifier of the XBase Store the XML Store in which the XBase resides Dynamic Delivery Services User Manual 68 API Frameworks and Services The XBase interface provides the following methods e store stores the specified XBaseEntry in the XBase clear deletes all Entries that have been stored in the XBase newEntry act as factory methods for creating the appropriate type of XBaseEntry based on a String representing the XML Fragment or a DOM Node newXBaseFile acts as a factory method for creating new XBaseFiles Should only be used by the StorageStrategy when creating a new document XBaseEntry The XBaseEntry interface com emc documentum xml dds xbase XBaseEnt ry provides the following method e write tells the XBaseE
109. g to a local Unix filesystem It has no Id It can have a virtual root like the WindowsStore lt UnixStore gt lt alias gt the_alias lt alias gt lt type gt FILESYSTEM lt type gt lt virtualRoot gt my location lt virtualRoot gt lt fileSystemType gt UNIX lt fileSystemType gt lt UnixStore gt e A XAMStore represents a XAM Storage Device For now the Centera is supported through the CenteraStoreUser lt XAMStore gt lt alias gt anAlias lt alias gt lt id gt anId lt id gt lt type gt XAM lt type gt lt defaultStoreUser class CenteraStoreUser gt lt administrator gt false lt administrator gt lt storeAlias gt anAlias lt storeAlias gt lt peaFileName gt xamconnect pea lt peaFileName gt lt defaultStoreUser gt lt connectionString gt snia xam centera_vim 127 0 0 1 lt connectionString gt lt XAMStore gt The Connection String field should contain the connection string as defined by the XAM specification The StoreUser should be a CenteraStoreUser The peaFileName should be the name of the PEA file needed to connect to the Centera The file itself should be stored in the same directory as the Application Bootstrap XML file Using the Structures Configuration When an Application starts the Structures Configuration is used to start the StructureManager class Any DataSets that must be available should be configured in the Structures Configuration The example below shows a basic Structu
110. gestions tab in the Manage Indexes menu tab bar The example below shows the list of index suggestions for the data contained by the Collection library of the Britannica dataset Dynamic Delivery Services User Manual 108 Related links DDS Admin Client plications 2 Manage Indexes amp DATA Name Type Library B garage Path DATA britannica Collection garage xml britannica Existing indexes Index suggestions ae Analyze data I Create Jf Reset Options Jf Select all Jf Unselect all Jf Filter britannica xml Index type Element Attribute Indexed Data type Options Samples Rating amp kitchensink Full Text Index 7 alt No String Concurrent 20 100 kitchensink xml Full Text Index 7 b No String Concurrent 15 100 I Full Text Index pre No String P Concurrent 3 100 I Full Text Index sup No String A Concurrent 20 25 Full Text Index 7 colspec No String 4 Concurrent 20 5 Full Text Index body No String 4 Concurrent NLA N A I Full Text Index desc No String 4 Concurrent N A N A For each Index suggestion the following information is available Index type the index type of the suggestion If the index type can be changed the index type can be selected from a list box Element the element name of the suggestion If the element has a URI an icon before the element name serves to display a popup text when you hover over the icon Att
111. h StoreUser can be determined by the Strategy the result from querying the fallback Strategy will be returned Implementation The com emc documentum xml dds operation library package contains several sub packages which provide implementations for its concepts com emc documentum xml dds operation library basic e com emc documentum xml dds operation library persistence com emc documentum xml dds operation library result The com emc documentum xml dds operation library basic package contains a number of abstract classes which partially implement some useful Operation types e The AbstractOperation class provides a partial implementation which implements the accessors for the Operation Id property Dynamic Delivery Services User Manual 59 API Frameworks and Services e The AbstractNoStoreOperation AbstractSingleStoreOperation AbstractTwoStoreOperation and AbstractMultiStoreOperation extend AbstractOperation and provide accessors and constructors for Operations which need no one two or many Stores respectively It also contains the OperationSequence and OperationSequenceExecutable objects e The OperationSequence is a complete Operation implementation and provides accessors for the list of contained Operations The com emc documentum xml dds operation library persistence package contains the Operations corresponding to the actions in the Persistence Layer This package contains one Operation for every action offered
112. h the context node and display it as an image nABwWN The sources of the JSPs are in DDS applications taglib demo public Dynamic Delivery Services User Manual 124
113. he CenteraStoreUser models a StoreUser for connecting to a XAM enabled Centera In addition to the id password authentication model it also supports PEA files which can be used by Centera to authenticate a User The PEA Filename property specifies the filename of the PEA file to be used for the StoreUser The file should be included on the classpath To ensure this the PEA files needed should be stored in the same directory as the Application Bootstrap file and have the pea suffix Dynamic Delivery Services User Manual 39 API Frameworks and Services Application Framework Modeled as a Service to benefit from the Service lifecycle management facilities see the Services Framework document the Application framework provides for configuring managing and accessing resources such as Services Stores etc Administrators can start pause resume stop and configure an Application without needing to take it offline The Application concept embodies the server component of an Application Concepts The ApplicationProvider concept provides support for running an Application in a Java VM The ServiceManager concept represents the Application component for managing Services The StoreManager concept represents the Application component for managing Stores The StructureManager concept represents the Application component responsible for managing Structures such as DataSets and Locales The XBaseManager concept represents the Applic
114. he Session interface com emc documentum xml dds persistence Session provides accessors to the following Session properties e Store Type the type of Store for which this is a valid Session e Store the Store for which the Session was created e User the StoreUser for which the Session was created e Session the actual store specific Session object For example for an XDB database this is an XhiveSessionlf object The Session interface provides the following methods abstracting transactional behaviour e begin starts the transaction e commit commits the transaction e rollback rolls back the transaction LocationOptions The LocationOptions interface com emc documentum xml dds persistence LocationOptions provides accessors to the following LocationOptions property e Store Type the type of Store for which these are valid LocationOptions ContainerOptions The ContainerOptions interface com emc documentum xml dds persistence ContainerOptions provides accessors to the following ContainerOptions property e Container Type the type of Container for which these are valid ContainerOptions Usage The recommended and easiest way to work with the Persistence Layer is by using the Operation Framework which encapsulates all the persistence operations and takes care of handling Sessions StoreUsers etc Directly using the Persistence Layer should only be considered for special cases for Dynamic Delivery Services User M
115. ibrary structure under APPLICATIONS in the database with the name of your application b Create the dataset s dds ant create dataset Ddataset your dataset name This will create a library structure in the database under DATA with your dataset name as its root c Create the library structure dds ant create templat Dapplication S your application name Alternatively you can use the DDS admin application This Ant task creates a folder file structure under applications your application name that is suitable for use with the DDS Ant tasks e bin contains build xml template build properties template Note If you want to use a template file just remove its template extension and edit it as required e data place any data here that is to be loaded into the database possibly in a subfolder application for application specific database content such as XProc and XForms documents e lib place any jar files here that are needed on the server side of a deployed application e resources place any resources here that you need to be on the classpath of a deployed web application these may include XProc an XForms documents but also any other stuff such as configuration files language specific resources etc e src develop the application s GUI here in terms of a composition of interacting widgets and services e war WEB INEF with web xml template Note The web xml template contains all DDS sp
116. icates whether messages at DEBUG level will be logged for classes for which no explicit Logger is registered The LogCenter interface provides accessors to the following methods e log log a message at LOG level warning methods log a message at WARNING level error methods log a message at ERROR level exception methods log an exception and an optional message at EXCEPTION level debug methods log a message at DEBUG level activateDebug and deactivateDebug methods set the Debug Status to true or false respectively register String className String prefix boolean debugLevel adds a new FileLogger for the specified class Prefix will be used as to construct the filename see the Usage section below Debug Level specifies whether DEBUG level messages from this class should be logged setDebug allows activation or deactivation of debug mode for specific classes unregister removes the custom mapping for the specified class Logging for that class will be directed to the Default Logger shutdown closes all the Loggers properly LogCenter should not be used after shutdown has been called Usage Working with Logcenter To log a message from any class just call LogCenter log this A message from me LogCenter warning this A warning from me LogCenter error this An error from me Log Levels Logging supports 5 levels of logging LOG WARNING ERROR EXCEPTION and DEBUG A message should be
117. ied Location setOptions sets the LocationOptions for the specified Location getMetadata retrieves the Metadata for the specified Container and Scheme e setMetadata sets the Metadata for the specified Container and Scheme e existsUser checks whether the specified StoreUser exists in the Store e createUser creates the specified StoreUser in the Store e deleteUser deletes the specified StoreUser from the Store XMLPersistor The XMLPersistor interface com emc documentum xml dds persistence XMLPersistor provides accessors to the following XMLPersistor property e Store Type the type of Store for which this is a valid Persistor The XMLPersistor interface provides the following methods for performing XML persistence actions on a Store e getChildCount methods returns the number of children of the specified XMLNode e getChildren methods retrieves the children of an XML Node optionally filtered by node type e getChildrenByRange retrieves a subset of the children of an XML Node specified by a start and end index e getNode retrieves the specified Node e getNodes retrieves a list of Nodes e insert inserts an XML fragment into or before the specified node e copy and move methods copy or move the specified XML Node into or before the specified target XML Node e remove removes the specified Node e setAttribute and setAttributes methods set the attributes on an XML Node Session T
118. ient Services e SerializableQName GWT equivalent of the standard Java class java xml namespace QName Used for representing XML qualified names e SerializableXMLSource GWT equivalent of the class com emc documentum xml xproc io XMLSource which represents XML content that can be processed or produced by the XProc engine e SerializablePipelineInput GWT equivalent of the class com emc documentum xml xproc pipeline model PipelineInput which represents input to an XProc pipeline e SerializablePipelineOutput GWT equivalent of the class com emc documentum xml xproc pipeline model PipelineOutput which represents output of an XProc pipeline Usage The following example demonstrates usage of the XProc Service in a GWT client application String pipelineURI Sra CleicaWiRUL sa of boolean readOnly true Get the GWT XProcService instance XProcServiceAsyne xprocService DDSServices getXProcService Prepare the input data to the pipeline SerializablePipelineInput input new SerializablePipelinelInput input addInput Source new SerializableXMLSource dataURI input setOption new SerializableQName output format xhtml1 Run the pipeline xprocService runPipeline pipelineURI input readOnly new AsyncCallback lt SerializablePipelineOutput gt Process pipeline result public void onSuccess final SerializablePipelineOutput output List lt Serializ
119. ies e Container Type the type of the Container This is a Store specific Enumeration constant For example on the file system there is only the file container type whereas in an XDB database there are two types Document and Blob e Location the parent Location in which the Container resides e Path the full path of the Container in the Store e Options the ContainerOptions for the Container The Container interface provides the following method e getXMLNode String xpointer creates a new child XMLNode pointing to the XML Node specified by the Xpointer expression XMLNode The XMLNode interface com emc documentum xml dds persistence XMLNode provides accessors to the following XMLNode properties e Container the Container to which the Node belongs e XPointer the XPointer expression pointing the XML Node in the Container The XMLNode interface provides the following method e asNode returns the org w3c dom Node contained in the XML Node if it is contained This only returns the DOM Node if the XMLNode is the result of a Persistence Operation The Node may not be valid outside the context of a transaction this is the case in XDB so this Dynamic Delivery Services User Manual 33 API Frameworks and Services method should only be used for the specific purpose of accessing DOM Nodes in the context of a transaction ContentDescriptor The ContentDescriptor interface com emc documentum xml dds persistence Con
120. ies and adding the needed data structures Implement the interface methods Using a Service Basic guidelines for using a Service To start a Service it should first be configured Then the initializeQ and start methods should be called Always check whether called methods return true as expected To configure a Service while it is active it should be paused using the pause method after which configuration can be changed When reconfigured the Service can be resumed using the resume method To stop a Service call the stop method To use one of the functions provided by a Service simply call the appropriate method Dynamic Delivery Services User Manual 54 API Frameworks and Services Services Lifecycle The lifecycle of a DDS Service is modeled by a state machine with the following actionable States Stopped Initialized Running Paused In addition a number of intermediate or internal states are provided which do not allow actions Each Action allowed by an actionable State results in a State change if succesful The diagram below illustrates the relationships between the States and Actions in the lifecycle of a Service Initialize Initializing Intialized Full Startup a Stopped i i 2n Pausing Pause Paused 7 i i H Resume i Running lt _A Resuming Stopping Stopped Stopped State is the initial State of a Service when it has been created When
121. information id password StoreUsers etc is stored in the file APPLICATIONS lt applicationName gt users lt userId gt xml Note StoreUsers are not managed by the User Service The Persistence Operations in the Operation Framework provide the necessary functionality for creating StoreUsers A User Token is a token which is obtained when a User logs into an Application It uniquely identifies the DDS Session which is the period between logging in and logging out either because the User logs out actively or because a timeout occurs The Token Service manages User Tokens Interfaces The User Service concepts have been codified into interfaces in the com emc documentum xml dds user package Dynamic Delivery Services User Manual 61 API Frameworks and Services User The User interface com emc documentum xml dds user User provides accessors to the following User properties e User Id the identifier assigned to the User and used for uniquely identifying the User in the context of an Application Password the password the User will need for log in e Administrator indicates whether the User is an administrator for the Application Default StoreUser the StoreUser which can be used to access a particular Store It is possible to set and retrieve a Default StoreUser for each Store The following method is provided e checkPassword returns true if the provided password is the correct password for the User UserS
122. ions called admin and garage you would have e APPLICATIONS admin e APPLICATIONS garage Inside an application library there are several predefined libraries for specific purposes e APPLICATIONS lt applicationName gt configuration holds configuration files such as the Services XBase and Store configuration files e APPLICATIONS lt applicationName gt resources is for storing application resources such as XQueries stylesheets XProcs XForms etc Dynamic Delivery Services User Manual 11 Administration e APPLICATIONS lt applicationName gt users hosts user specific configuration for DDS Users as well as their home libraries The configuration library typically contains the Services xml Structures xml Stores xml XBases xml and other configuration files The resources library typically has several child libraries one for each type of resource e APPLICATIONS lt applicationName gt resources xforms e APPLICATIONS lt applicationName gt resources xproc e APPLICATIONS lt applicationName gt resources xslt The users library has one XML file containing the configuration for the DDS User and one library which acts as the home library for that User Any documents specific to that User should be stored in the home library The name of the configuration file is the User Id with the xml suffix added The name of the home library is simply the User Id Each XForms script should have its own library inside APP
123. is Request is the logical representation of the question the User is answering possibly implicitly For example if many objects on a site are being rated the String rating could be used as requestId to show that the Response is actually a rating applied by the User to something on the site contextld a String identifying the context in which the Request was answered For example if a book is being rated the context Id could be the ISBN or other identifier for the book Similarly if a webpage is being rated the URL could be used as the context identifier time the time at which the response was submitted This should be formatted using the xsd dateTime format from XML Schema Storing Responses The primary purpose of the Response Service is to store information received from Users To do this XBases should be created or configured see the XBase chapter and registered to the ResponseService with the appropriate filters For example if all the Responses with Request Id foo should be stored in XBase bar which has been preconfigured for the Application in the XBaseManager a Filter could be created with the following accept method public boolean accept Response response return foo equals response getRequestId The ResponseService will store all Responses with Request Id foo in the bar xBase through invoking XBase xBase application getXBase bar responseService regi
124. is the name of the DataSet with xml appended Application root An Application Root contains the following Locations e A Configuration Location called the Configuration Root contains the configuration Containers for the Application such as the Service configuration Structure configuration etc e A Users Location called the Users Root contains the User Home Locations where user specific data can be stored using the UserService A User Home Location has the same name as the user The Users Root also has one child Container for every user whose name is the user name with xml appended which contains configuration information about the user e A Resources Location called the Resource Root contains all the resources that are specific to the Application and are used by the Application This can include but is not limited to XProc pipelines XSL stylesheets XForms etc The internal organization of the Resource Root is up to the Developer DataSet Root The organization of the contents of the DataSet Root depends on the StructureStrategy for the DataSet and on whether the DataSet is locale aware or not Related links e Applications and Data Dynamic Delivery Services User Manual 50 API Frameworks and Services DDS Locales and Java locales A Java locale can be instantiated with a language and or a country and an optional variant The DDS Locale conforms to this The DDS Locale name and Id correspond to the
125. it GWT e Java Development Kit JDK See the Release Notes for more information about hardware and software requirements As an aid to developers the product includes several sample applications Architecture DDS has a layered architecture with each layer using the functionality through the exposed API of the ones below The layers are organized as shown in the following figure Dynamic Delivery Services User Manual 7 Introduction Ene Usar Y 39 GUI Kamin Way GUI Web Client GWT Client API DDS GWT GUI Components JSP Pages Site Caching Web Server Services By 565 yzi GWT Server JSR Tay Dry DDS Platform Services DDS Platform API Configuration Arise Spice Logic Engine ie Persistence Layer Content Server XMI Annlication XMI Anolication XML Application s Stored XQueries XForms instances XProc instances XML Store KQuery Engine XSL T XSL FO Indexes Content XML Store Fora DDS application the XML Store may hold all application specific resources XProc instances XForms Process Data Modules XSLT Stylesheet etc as well as all of the data on which the application works a repository of XML content images audio files etc APIs offer access to functionality such as data storage and retrieval transaction management indexing querying etc Persistence Layer The DDS Persistence Layer provides abstractions which allow the DDS developer to persist retrieve and manage data
126. it defaults to application bootstrap xml which will be read from the WEB INF directory in the Tomcat directory that contains the deployed application The ApplicationStarter object will receive an event when the application is deployed in Tomcat causing the object to read the Bootstrap configuration file and to instantiate and start the Application Whenever a servlet session terminates the SessionListener will perform the appropriate cleanup e g logging out the user if any Using the Services Configuration When an Application starts the Services Configuration is used to configure the ServiceManager class Any Services that must be available should be configured in the Services Configuration Dynamic Delivery Services User Manual 44 API Frameworks and Services The example below shows a basic Services Configuration starting some standard Services lt xml version 1 0 encoding UTF 16 gt lt services gt lt service gt lt type class DDSServiceType gt USER lt type gt lt name gt UserService lt name gt lt className gt com emc documentum xml dds user impl UserServiceImpl lt className gt lt service gt lt service gt lt dependency gt UserService lt dependency gt lt type class DDSServiceType gt TOKEN lt type gt lt name gt TokenService lt name gt lt className gt com emc documentum xml dds user impl TokenServiceImpl lt className gt lt service gt lt servi
127. ld see XML Store documentation a JspException results lt dds when gt This tag is used in situations where an action example a transform or tostring should be performed conditionally on the outcome of some action This action might be an XQuery with a boolean result Within a when tag other tags are executed if and only if the XQuery result is true Another possible action is a test method on a user specified class This happens when the programmer sets the optional classname attribute see below Optional className Example className someFullySpecifiedClassName This attribute sets the className of the class where the tag will find the boolean test method with a Node as its single parameter If and only if the method returns true for the current context node the tags within the when tag are executed Exceptions If the xquery yields the wrong type of result a JspException is thrown If the test method is not a boolean method or has the wrong parameters or the className does not specify a valid class a JspException results lt dds choose gt Multiple when tags can be grouped within a choose tag The first when tag preceded by an XQuery resulting in true gets to have its body executed All other tags are skipped lt dds otherwise gt If all when tags in a choose tag are skipped because none of the XQueries yields true then the body of the otherwise tag is executed lt dds foreach gt This tag is used in situations where an a
128. leURI of the transform tag lt doctype html public w3c dtd html 4 0 transitional en gt lt html gt lt taglib uri http www emc com documentum xml dds taglib prefix dds amp gt lt head gt lt meta http equiv Content Type content text html charset ISO 8859 1 gt lt title gt DDS Taglib Demo lt title gt lt head gt Dynamic Delivery Services User Manual 97 Client Services lt body gt lt h1 gt DDS Tag Libs Sample lt h1 gt lt dds session gt lt dds contextnode uri dds DOMAIN data DATASET garage LOCALE eng concepts oil xml gt lt dds transform styleURI dds DOMAIN resource xslt taglib taglib demo xsl gt lt dds session gt lt body gt lt html gt Taglib API There are some convenience classes in the com emc documentum xml1 dds taglib package in the API for adding your own tags The TagHe1per class contains some DDS specific convenience methods For the tag classes themselves we recommend extending Abst ractTag or AbstractBodyTag and implementing the performStartTag method This prevents the tag from executing if an exception was thrown earlier See the JavaDocs on the com emc documentum xml dds taglib package for a more complete description To ensure that your tags definitions classes attributes will be found and interpreted correctly by the web container you must include your custom tags in a tld file and refer to this tld file from the application s
129. lication tailored to run on top of that database DDS provides for an XML store to hold the data and the means to construct a basic application frame and user interface A general approach to development is outlined below This example assumes use of a command line tool to execute Ant tasks in the bin folder of a standard DDS installation on a local computer including JDK GWT and Tomcat by a single developer 1 Ensure that Tomcat is not running 2 Go to the DDS bin folder 3 Set values in the properties files including ant environment properties and ant xdb properties Note Values used in the steps below should match those in the properties files 4 If the application requires a new database a Create a new empty database dds ant create database Dname your database name Dadmin password your admin password Dsuperuser password S your superuser password b Create the database layout dds ant create database layout This creates the required APPLICATIONS and DATA libraries in the database see Data layout Alternatively you can use the admin tool of the XML Store to create the database and its layout on the federation Nn Start Tomcat using a separate command line session 6 Create database structures Dynamic Delivery Services User Manual 14 Administration a Create the application dds ant create application Dapplication your application name This will create a l
130. ly it is possible to specify values for external variables used in the XQuery The following example demonstrates the usage of the XQuery Service in a GWT client application XQueryServiceAsynce xqueryService DDSServices getXQueryService xqueryService execute uri topicref href new AsyncCallback lt List lt SerializablexDBXQueryValuelf gt gt public void onSuccess List lt SerializablexDBXQueryValuelIf gt result Handle the list of SerializableXDBXQueryValueIf objects her public void onFailure Throwable caught Handle exceptions here DE Dynamic Delivery Services User Manual 89 Related links Client Services e GWT Services GWT 118N Service Related links The GWT I18N Service provides internationalization I18N related functionality in the client applications This is codified in the com emc documentum xml dds gwt client rpc I18NService interface which provides the following methods e getCountries returns all defined ISO country codes and names e getCountryName returns the country name for given ISO country code getLanguages returns all defined ISO language codes and languages e getLanguageName returns the language name for given ISO language code e getISO2Countries returns all defined ISO 2 character country codes and country names e getISO2CountryCodes returns all defined ISO 3 character country codes e getISO2Languages returns all defined ISO
131. me which even allows for temporarily taking a Service offline without needing to take the entire Application offline The Dynamic Delivery Services User Manual 52 API Frameworks and Services lifecycle model provides for a succession of States and associated Actions The model includes a number of internal states which do not allow actions The following table summarizes the model omitting internal States for quick reference For more information on States and Actions see Services Lifecycle State Action s Resulting state if Resulting state if action is succesful action fails Running Pause Paused Running Stop Stopped Running Paused Resume Running Paused Stop Stopped Paused Interfaces The Service Framework concepts have been codified into interfaces in the com emc documentum xml dds service package Service The Service interface com emc documentum xml dds service Service provides accessors to the following Service properties e Application the Application object in the context of which the Service operates e Name the name of the Service This is configurable and allows developers and or administrators to provide the Service with a user friendly name for display in administration tools etc e Type an enumerated constant which specifies the type of the Service e State an enumerated constant specifying the State the Service is currently in e Last Action the Action that was most recently perform
132. me gt LogicEngineService lt name gt lt className gt com emc documentum xml dds le impl LogicEngineServiceImp1 lt className gt lt dataModuleResolver gt class name lt dataModuleResolver gt lt stateManager gt class name lt stateManager gt lt sl000DVersion gt version lt s1l000DVersion gt lt logicengineservice gt The lt dat aModuleResolver gt entry specifies the data module resolver to be used with the Logic Engine The class must extend the class com emc documentum xml dds le Abst ractDDSDat aModuleResolver and provide a default no argument constructor The lt stateManager gt entry specifies the state manager to be used with the Logic Engine The class must extend the class com emc documentum xml dds le AbstractDDSStateManager and provide a default no argument constructor The entry lt s1000DVersion gt is optional and can be used for specifying the version of the S1000D schemas to use If omitted version 3 0 will be used by default Usage The following configuration registers class com example le Resolver as the data module resolver and class com example le StateManager as the state manager S1000D version 2 3 will be used lt logicengineservice gt lt type class DDSServiceType gt LOGICENGINE lt type gt lt name gt LogicEngineService lt name gt lt className gt com emc documentum xml dds le impl LogicEngineServiceImp1 lt className gt
133. mework This framework offers a Service concept which models a Service as having a lifecycle a Service can be started and stopped as well as paused and resumed The non administrative functions offered by the Service are only available while the Service is running In any other state only the administrative functions of the Service are usable These are functions that typically are only available to an DDS Administrator The functions offered by a Service are defined by the API defined in a Java interface and access to a function of a Service is by calling the appropriate Java method Client components can access the Services indirectly through a Client Service which acts as an intermediary between the Client and the Service The following Services have been provided e UserService functionality related to Users e XProcService allows the execution of XProc pipelines e LogicEngineService access to the Logic Engine functionality e TokenService functionality for mapping Session Tokens from client sessions to Users e ResponseService functionality related to processing and storing input received from Users The Application keeps track of and offers access to the Services that have been configured by means of the ServiceManager Configuration of the Services which are available happens through the Services xml document in the Main Store The Application is itself modelled as a Service which means the Application can be started pa
134. n A basic DDS front end this Administrator tool is intended for general administration and development of DDS applications Garage A demo application with a graphical user interface including e menus and tabs e a Table of Contents tree e switching between datasets e content searching e content assembly and delivery e output to PDF and HTML DDS applications can provide grab and bind functionality to end users allowing them to compose their own virtual documents from selected content documents or fragments These virtual documents can be printed or output as PDF or HTML to computer screens and handheld devices by means of drag and drop The garage demo uses several different data sets including one based on the DITA garage toolkit and another based on The Project Gutenberg EBook of Encyclopaedia Britannica 1 1th Edition Volume 4 Part 3 Garage shows a possible way to present content in a web application including use of menus window panels folders search options and publications Kitchen sink An extension of the GWT Kitchen Sink sample this demo application shows general behavior of services and widgets Taglib A demo application to show usage of tag libraries for data retrieval from an XML Store It uses the data from the garage demo application Dynamic Delivery Services User Manual 10 Administration Logic engine DDS comes with a built in S1000D Process Data Module Logic Engine a software component tha
135. n resolving a URI the processor consults all resolver modules until it finds one that understands the specified URI scheme If no resolver module supporting the given URI scheme is found a resolution error occurs For storing content the XProc processor relies on so called writer modules Writer modules are similar to the resolver modules in the sense that they are used for providing access to target locations represented by a URI When resolving a target URI the processor consults all writer modules until it finds one that understands the specified URI scheme If no writer module supporting the given URI scheme is found a writer error occurs Any number of custom resolver and writer modules can be registered with the XProc implementation By default XProc contains reader module and writer module implementations that support DDS URIs An XProc instance is always bound to a particular DDS User All resource manipulations both read and write are performed using this user information When referring to resources the XProc Service needs to be able to create Sessions for the Persistence Layer framework To facilitate that each XProc instance is assigned a session pool which it can use for creating new sessions and for reusing existing sessions Interfaces The XProc Service concepts have been codified into interfaces in the com emc documentum xml dds xproc package DDSXProc The XProc interface com emc documentum xml dds xproc D
136. n OperationSequence this Id will be used to retrieve the Results from specific Operations within the OperationSequence if needed e Read Only indicates whether the Operation is a read only operation if it involves any Stores This will allow the framework to optimize any involved transactions e Executable Class Name the class name of the OperationExecutable which corresponds to this Operation and which will be instantiated by the Operation Framework when the Operation is submitted for execution If the value of this property is null the classname of the Operation is used with the String Executable appended For example if the Operation has classname com foo BarOperation the framework will assume the classname of the corresponding OperationExecutable to be com foo BarOperationExecutable e Store Ids the list of Ids of all the Stores which are involved in the Operation The following methods are provided for control of the Service lifecycle e initialize performs the Initialize Action and returns an indication of whether the Action was successful It returns when the Service has entered either the Initialized or Stopped State e start performs the Start Action and returns an indication of whether the Action was successful It returns when the Service has entered either the Running or Initialized State e pause performs the Pause Action and returns an indication of whether the Action was successful It returns when the Servi
137. n configured with the DDSStructureStrategy DATA dataSetId en_US foo bar e If the DataSet has been configured with the DocumentumStructureStrategy DATA dataSetId Collection en_US foo bar To obtain a Container inside an DDS Locale the following code can be used Dynamic Delivery Services User Manual 49 API Frameworks and Services DDSLocale locale Application getLocale dataSetAlias en_US Container container locale getContainer foo bar baz xml This yields a Container pointing to a physical path inside the Store e If the DataSet has been configured with the DDSStructureStrategy DATA dataSetId en_US foo bar baz xml e If the DataSet has been configured with the DocumentumStructureStrategy DATA dataSetId Collection en_US foo bar baz xml Store Locations The root of a Store contains two Locations DATA and APPLICATIONS e The APPLICATIONS Location contains a separate child Location called an Application Root for every Application that has this Store as its main Store The name of the Location is the name of the application Each Application Root contains all the resources and configuration for that Application e The DATA Location contains a separate child Location called a DataSet Root for every DataSet in the Store as well as a Container for the configuration information for the DataSet called a DataSet Configuration The name of the Location is the name of the DataSet and the name of the Container
138. n future releases The most important feature for creating applications are the DDSDataSet and DDSLocale getLocation and getContainer methods which will remain stable Concepts The Structures Framework is built around the following major concepts A Structure models a set of data together with a Structure Strategy which determines where the data will be stored A Structure Strategy indicates which rules will be used for determining where in the Store data is persisted for a particular Structure A DataSet is a Structure which models a coherent collection of data It can be locale aware in which case it can contain a number of Locales see below A Locale is a Structure which models a subset of a particular DataSet belonging to a single Locale A Locale is either a language a country or a combination of these with an optional variant for each case Interfaces The Structures Framework concepts have been codified into interfaces in the com emc documentum xml dds structure package DDSStructure The DDSStructure interface com emc documentum xml dds structure DDSStructure provides accessors to the following DDSStructure properties e Structure Id the Id of the Structure inside the Store where the Structure resides It is unique to the Store but not necessarily to the Application e Structure Strategy the Strategy which determines where the data will be stored inside the Store e Root Location the root location of the
139. n with this Bootstrap e deserialize this file into the Bootstrap object e instantiate an Application object e call the configure method In the example below the configXml variable is a String containing the bootstrap XML text Serializer lt Object gt serializer new DefaultDDSSerializer Application application new ApplicationImpl application configure Configuration lt gt serializer deserialize configXml appl Cat Konte UMESAO During initialization the Application will resolve the Main Store as well as the Services Configuration reference and the Stores Configuration reference and initialize the ServiceManager and StoreManager with the resulting Configuration objects Using the Application Bootstrap in Tomcat The DDS ApplicationStarter and SessionListener classes must receive the correct events when the Application is deployed or undeployed to the Apache Tomcat application server To ensure this the following must be present in the applications s web xm1 file before any servlet declarations lt listener gt lt listener class gt com emc documentum xml dds servlet ApplicationStarter lt listener class gt lt listener gt lt listener gt lt listener class gt com emc documentum xml dds servlet SessionListener lt listener class gt lt listener gt In the web xml file the dds application config path context parameter should be set with the path of the bootstrap file as value If not set
140. ne currentProcessView dmRef null logicEngine releaseProcess dmRef null Close all sessions Collection lt Session gt openSessions logicEngineDDS getOpenSessions for Session session openSessions session commit The following example demonstrates the use of the Process Data Module Renderer Get the Logic Engine service instance LogicEngineService logicEngineService LogicEngineService application getServiceManager get Service DDSServiceType LOGICENGINE User user Create a new DDSProcessDataModuleRenderer instance DDSProcessDataModuleRenderer rendererDDS logicEngineService newProcessDataModuleRenderer user Render a Process Data Module DataModuleRef dmRef OutputStream out rendererDDS render dmRef out OutputType PDF Close all sessions Collection lt Session gt openSessions rendererDDS getOpenSessions for Session session openSessions session commit Dynamic Delivery Services User Manual 75 API Frameworks and Services Related links e Logic Engine Service Configuration e GWT Logic Engine Service e Application Configuration Logic Engine Service Configuration To use the Logic Engine service DDS applications must configure the service in their Services Configuration file lt logicengineservice gt lt type class DDSServiceType gt LOGICENGINE lt type gt lt na
141. ne resolver DataModuleRef represents a Data Module reference SerializableProcessView represents an abstract view on a Process Data Module instance SerializableBaselineProcessView represents a process view that supports navigating to the previous or next step of a Process Data Module instance SerializableDialogProcessView represents a process view with a contained dialog SerializableDataModuleProcessView represents a process view with a contained Data Module SerializableStepsProcessView represents a process view with a contained dialog SerializableExtAppProcessView represents a process view that should be used for executing an external application SerializableTerminalProcessView represents the terminal state of a Process Data Module instance SerializableDialog represents a dialog SerializableDialogItem represents a dialog item SerializableDialogGroup represents a group of dialog items SerializableFillin represents the fill in dialog item SerializableMenu represents a menu dialog item SerializableMenuChoice represents amenu choice Dynamic Delivery Services User Manual 92 Client Services e SerializableMessage represents a message dialog item e SerializableValidationStatus represents the validation status of a dialog item e SerializableExtApp provides access to the information needed to execute an external application e SerializableExtAppResponse represents the resul
142. new document appears in the current library Editing an XML document Select the Applications tab Navigate to the document you want to edit Click the Edit button The Edit dialog appears Edit XML Source code Click the Submit button If validated the edited document appears in the current library Viewing an XML document You can view the contents of an XML document 1 2 Select the Applications tab Navigate to the XML document you want to view Dynamic Delivery Services User Manual 106 3 Click the View button DDS Admin Client The View dialog appears It displays the XML content of the document in a scrolling window 4 Click the close button to close the dialog Working with Existing Indexes To view or delete indexes of a specific library select the Existing Indexes tab of the Manage Indexes menu tab Each dataset has its own named node directly under the DATA node in the Manage Indexes tab Each dataset has Collection and CollectionMetadata sub libraries When you select the Collection node of a dataset a list of its indexes appears The example below shows the indexes of the Collection library of the Britannica dataset BS Applications B Manage Indexes B DATA B garage garage xml amp britannica a Sollection CollectionMetadata britannica xml amp kitchensink kitchensink xml Name Type Library Path DATA britannica Collection
143. nglish or deu for German Inside that library the documents can be organized at will e The metadata are stored in the library DATA lt name of dataset gt CollectionMetadata lt language code gt The DDS Ant tasks provide an easy way to store the data in these locations The demo application comes with two DITA data sets e Garage set of DITA source files containing concepts and tasks related to organizing and doing tasks in a garage The data set is available for download from http dita ot sourceforge net SourceForgeFiles doc user_guide html e Britannica DITA version of Encyclopaedia Britannica 11th Edition Vol 4 Part 3 of 4 Available for download from http dita2indesign sourceforge net Using the application When the Garage demo application is first accessed with a web browser a login screen will appear Enter admin as user name and secret as password and click Log in The main user interface will be displayed in the browser The user interface contains the following components e A menu bar with four menus Document Language Data Set and Search for access to various functions e A button bar with four buttons for switching between the DITA document types Topics Concepts Tasks and Maps e The contents panel for browsing the DITA documents in the data sets e The publication panel cor composing DITA Map documents Dynamic Delivery Services User Manual 114 DEMO APPLICATIONS e The view panel which
144. ns Related links e Resetting Index suggestions Resetting Index suggestions Depending on the Index suggestion you can apply the following changes to the index definition e Change the type of the index e Change the data type of the index e Change index options To undo the changes you have made to the suggestions 1 Navigate to the required Collection on Manage Indexes 2 Select the Index Suggestions tab 3 Select all suggestions you want to reset 4 Click on the Reset button The Index suggestions have returned to their original state Dynamic Delivery Services User Manual 112 DEMO APPLICATIONS DEMO APPLICATIONS Garage demo The Garage demo application is an Application that was built with DDS using DITA based data sets This demo application is intended to give developers a general impression of what that can be achieved with DDS It implements a possible approach to presenting content in an end user application using menus window panels folders search queries and publications It is NOT intended as an example of a finished deployment ready application The demo allows end users to assemble publications by constructing a table of contents from a set of topics by means of drag and drop the result can be rendered as PDF or HTML Building and running the application In order to run the Garage demo application perform the following steps in DDS bin 1 Build the application dds ant build Dapplica
145. ntry to write itself into the provided XBaseFile XBaseFile The XBaseFile interface com emc documentum xml dds xbase XBaseFile provides the following methods e getEntryCount returns the number of Entries stored in the XBaseFile e create creates the actual underlying XML document in the database e store stores the specified XBaseEntry in the XBaseFile e clear deletes all the Entries stored in the XBaseFile e close closes the XBaseFile after which no more Entries should be stored in this file LogBase The LogBase interface com emc documentum xml dds xbase logbase LogBase adds the following method to the XBase interface e newEntry provides a way to create a LogBaseEntry based on a Map containing key value pairs LogBaseFile The LogBaseFile interface com emc documentum xml dds xbase logbase LogBaseFile adds the following methods to the XBaseFile interface e addAsString and addAsNode these methods take an XML Fragment coded as a String or a DOM Node and add it to the LogBaseFile document by appending it as a child of the root element e additional methods for use by the LogBaseEntry write method and allow the Entry to write itself into the LogBase For a detailed description please see the Javadoc for LogBaseEntry com emc documentum dds xbase logbase LogBaseEntry Usage The following example shows how to submit an Entry as an XML Fragment XBaseEntry entry xBase newEntry
146. nvenient DDS specific functionality GWT Client On the client side DDS offers a GWT widgets set which can be used with the GWT core widgets in a browser application Interaction with the server side of DDS is through the GWT services of the previous layer Application Development In principle all APIs of all DDS layers are available to the application developer From the sections on application development demo applications and the API developers can learn on what layers best to develop For example if a new GWT based application requires some intricate piece of persistence logic on the server side which is not offered as such by DDS the developer may find that a new Operation must be devised which can then be made available as a GWT service Alternatively he she may find that combining existing Operations suffices and that the only thing needed is to write the GWT service using them Dynamic Delivery Services User Manual 9 Administration Administration Included web applications DDS comes with several web applications including an Administrator tool and several demo applications using a different user interface different data or both For instructions on building and running the demo applications see the Installation Guide By running demo applications and by examining the included source code a web application developer can get a good basic impression of the kind of results that can be achieved with DDS Admi
147. ocationOptions for that Store Constructing a Location Location location store getLocation MyApp Documents The Store property of the Location will be set to the Store on which the Location was constructed Dynamic Delivery Services User Manual 36 API Frameworks and Services For purposes of navigation the getParent getChildContainer getChildLocation getDescendantContainer and getDescendantLocation methods available in the Location provide convenient ways to create new Location and Container objects Note These methods do not in any way affect or take into account the state of the actual storage facility Calling newLocation myLocation getDescendantLocation foo bar returns a Location object two levels down in the Store hierarchy which may or may not exist in the actual storage facility Note getDescendantContainer and getDescendantLocation are only applicable to actual true descendants Moving sideways or up in the Location structure is not possible with this method For instance in the XDB structure calling newLocation myLocation getDescendantLocation foo bar would not yield a nephew Location the child bar of the Location foo which has the same parent Location as myLocation but a descendant three levels down The grandparent of the newLocation would be the library which is a valid name for an XDB library which would itself be the
148. odule is represented by its state The Logic Engine implementation stores the state information persistently in a form of an XML document The Dynamic Delivery Services User Manual 73 API Frameworks and Services component that is responsible for storing and retrieving the state information is called the State Manager To use the Logic Engine service custom implementations of the data module resolver and the state manager must be registered with the Logic Engine see Logic Engine Service Configuration When referring to resources the Logic Engine needs to be able to create Sessions for the Persistence framework In order to facilitate that each Logic Engine instance is assigned a Session Pool which it can use for creating new sessions and for reusing existing sessions Interfaces The Logic Engine Service concepts have been codified into interfaces in the com emc documentum xml dds le package DDSLogicEngine The Logic Engine interface com emc documentum xml dds le DDSLogicEngine provides accessors to the following e Logic Engine the Logic Engine processor itself The Logic Engine provides APIs for instantiating new process instances performing navigation operations etc e Session pool provides the data module resolver and state manager with the ability to create and reuse Sessions The session pool also keeps track of all Sessions that have been created while interacting with the Logic Engine e Open sessions th
149. onsuming It is recommended you analyze the smallest possible sample dataset that is representative for the application s that will use the data The Data Analyzer functions The Analyzer proceeds as follows Dynamic Delivery Services User Manual 109 DDS Admin Client e Investigate what elements and attributes exist in the data e All element attribute and element attribute indexes are listed e Determine what index type to use Full Text or Value index e If the element or attribute to index does not have a text value only a FTI index is suggested e If an element or attribute has only a text value the analyzer will try to detect the data type of the value If the data type is string then a FTI index is suggested e If the data type is of any other type a Value index is suggested e Determine what data type to use e If an element or attribute has only a text value the analyzer will try to detect the data type of the value by parsing the value as different types e For performance reasons only a limited set of values are type checked If the analyzer proposes a certain data type other than string there still may be values in the data that do not cast to the data type In that case an error will result when you try to create the index Creating an Index To create an index you must first generate Index suggestions Use the Analyze data button to generate Index suggestions If your dataset has changed you can click on the
150. or a library in an XDB database e A Container models the storage object that contains the actual data A Container may correspond to a file on a file system or a document or blob in an XDB database Dynamic Delivery Services User Manual 30 API Frameworks and Services e An XMLNode models any XML Node in the Store This includes Document nodes as per DOM as well as nodes inside a Document The basic model consists of a Container and an XPointer expression where the referenced Node is a Node inside the Container and obtained by resolving the XPointer expression However the XMLNode can actually contain an org w3c dom Node object but only in case the XML Node was returned by a Persistence operation such as getNode or getChildren in the XML Persistor This result should almost never be used directly except as input to another Persistence Operation In all other cases it should be transformed to another representation such as a Serialized Node Note Depending on the type of Store other entities may be treatable as XML Nodes Such behaviour should NOT be relied upon when writing code that should be portable across different types of Store For example in XDB the Libraries can be treated as XML Nodes and support is provided for this in the XDB implementation of the Persistence concepts A StoreUser models the user concept at the level of the Store for example an operating system user on a file system or an XDB user in an XDB da
151. order including parameters and an indication of their primary purpose which can be for administrator use or for developer use See the file DDS bin build xml and the demo applications for specifics create database Creates a database in the XML Store Administrator Parameters e xdb bootstrap e superuser password e name e admin password create database layout Creates the database s main library structure as required by DDS Administrator Parameters none delete dataset Deletes a data set from the database Administrator This implies that the library with the dataset s name is removed from the DATA library in the database including everything under it Parameters e dataset create application Creates an application in the database Administrator This implies that a library is created in the database with the name application The library s further properties are unless overridden taken from bin ant xdb properties Actually this target just invokes the create application target in the application s own build xml to be found in applications application bin Parameters e application delete application Deletes an application from the database Administrator This implies that the library with the application s name is removed from the APPLICATIONS library in the database including everything under it Actually this target just invokes the create application target in the application s own b
152. oreChild as an XML Node if possible This will not work for Stores where Locations cannot be treated like XML Nodes Location The Location interface com emc documentum xml dds persistence Location provides accessors to the following Location properties e Parent the parent Location The Parent of the Root Location of a Store is null e Path Components the individual components making up the Path e Root indicates whether the Location represents the Root Location for the Store e Options the LocationOptions for the Location If null the default DDS LocationOptions will be used for persistence actions when needed The Location interface provides the following Location methods e getChildLocation String name creates a new child Location object with the specified name e getChildContainer String name creates a new child Container object with the specified name e getDescendantLocation String relativePath creates a descendant Location in a Path relative to the ancestor Location specified by the relativePath parameter e getDescendantContainer String relativePath String name creates a descendant Container in a Path relative to the ancestor Location specified by the relativePath parameter with the specified name e deepCopy creates a new Location object representing the same Location Container The Container interface com emc documentum xml dds persistence Container provides accessors to the following Container propert
153. output of the toString method of the corresponding java util Locale object For example a Locale for the US will have _US as name and Id A Locale for US English will have en_US as name and Id See the javadoc documentation for java util Locale for more details Storage examples Suppose there is a data set called DS1 which includes a file MyDocuments Chapterl doc The storage structure of the data set would be DATA DS1 Collection DATA DS1 CollectionMetadata Without a locale If there is no locale the file and its metadata will be stored under DATA DS1 Collection MyDocuments Chapterl doc DATA DS1 CollectionMetadata MyDocuments Chapterl doc Note The metadata file gets the same file extension as the data file even if it is an XML document With a locale If there are two locales en_US and fr_FR the file and its metadata will be stored under DATA DS1 Collection en_US MyDocuments Chapterl doc DATA DS1 Collection en_US Metadata MyDocuments Chapterl doc and DATA DS1 Collection fr_FR MyDocuments Chapterl doc DATA DS1 Collection fr_FR Metadata MyDocuments Chapterl doc Dynamic Delivery Services User Manual 51 Related links API Frameworks and Services With a locale and metadata If the folder MyDocuments included a metadata file it would not be possible to place an XML document in the parallel structure Its metadata file will be placed inside a nameless XML document D
154. overwrite false quiet false gt lt libraryoptions gt lt option name concurrent library value true gt lt option name concurrent namebase value true gt lt libraryoptions gt lt dds create dataset gt import application data Imports application data like XForms XProcs and stylesheets Attributes Dynamic Delivery Services User Manual 21 Administration e application the application name required e databaseref a reference to the database construct required e overwrite indicator that existing data in the database can be overwritten If true data that already exists in the database will be replaced by corresponding imported data Default false e quiet determines what information will be shown on the console If false all import information will be shown If true only warnings and errors are shown Default false Nested elements e libraryoptions During import missing libraries are created automatically This element sets library options for these new libraries Nested elements option with attributes name and value Available options e concurrent library default true e concurrent namebase default true e lock with parent e documents do not lock with parent e xmifileset Extension of Ant fileset to specify all files that must be imported as XML See Ant fileset attributes Nested elements domconfiguration to set xml parse options nested element parame
155. pace null Full Text Index 901 gt General Options 4 DDS Internal Index Locale values Metadata Index Peo I DDS Internal Index Subscription e P Metadata Index lal 11 I Library Id Index A Library Id Index J el 2 ane a z Index all text Library Name Index iA Library Name Index lal Adjust to lowercase r4 Filter english stop words Support phrases A selection box precedes each listed item You can select and deselect individual items by clicking their selection boxes and you can use the buttons Select all and Unselect all to select or unselect the entire list Deleting indexes You can delete one or more of the existing indexes 1 Navigate to the required Collection on Manage Indexes Note To view index information hover your mouse cursor over the preview icon of an index 2 On the Existing indexes tab select the index es you want to delete Click the Delete button 4 Click OK to proceed e Click Cancel if you want to abort the operation ad The selected index es are removed from the list Note You cannot delete an index of type Library Id Index if the owner library is a concurrent library Working with Index suggestions Defining indexes can be a complex task The purpose of the Index suggestions tab is to automate index creation as much as possible by providing a choice of possible index definitions based on data analysis of the dataset To view indexes suggestions based on data analysis Go to the Index sug
156. plication e getApplication retrieves the Application object in whose context the Token was created e getUser retrieves the User object for which the Token was created Usage To use the UserService a reference is obtained from the Application object UserService userService UserService application getServiceManager getService DDSServiceType USER Thereafter usage consists of invoking the methods on the Service Dynamic Delivery Services User Manual 62 API Frameworks and Services Response Service The Response Service is used to deal with information provided by Users such as ratings comments The Response Service deals with the reception and processing of information supplied by the User Concepts A Response is an XML fragment which contains information the User entered and which is submitted to the server The Response could be a rating of a document a comment a blog post etc A PreProcessor is an object which will process and potentially transform the Response before it is stored in an XBase A PostProcessor is an object which will process the Response after it has been stored in an XBase A ResponseFilter is an object which can be associated with processors through ProcessorAssociations and XBases through XBaseAssociations determining whether the processor should be applied to the Response or whether the Response should be stored in the XBase When a Response is submitted
157. plication Development eccccceseceeeeeeeeeteeeeeeeeecaeeeeeeeeesaeeeseaeeeseeeeeeaeeee 27 Adding Server FUNCHONMAIILY srair ei iae ce haana rataran va eae aa ah an aa ae aan aa anai 29 Persistence Layer cicicti state hdecel cies Pivenhdd ete ate ev ee E E E 30 Usma the Persistence Layer asc civessee coy baseee caches ee EE REE ceehareua tend veautes Deveasucrehl hy 36 Persistence Layer and XDB cerre eeii a a E E e a ei 38 Persistence Layer and File System ccccceeeeeeseseeeeeeeeeeeaaeeeeeeeeseaaeseseeeeessaeeeeeneees 38 Persistence Layer and XAM ccesecsceeeeeesneeeeeeeenaeeeeeeeaaaeeeseeeaaeeeeeeeaaeeeeeeeaeeeeeeeeaas 39 Application Framework zosis at idii a aeaa Aa EEE o E AAEN a 40 Application Configuration 0 c cccccccccceceeeeeeeeeeecaeeeeaeeeseeaeeeeaaeeseaeeesaaaeseeneeesaaeeneneees 42 Structures Fram CwoOrk ssar erraina i taada t aak ceased ee iania daadaa ie taae i aaia tiada 48 Store Locations mensne naaa aai Ga ae as a ae tel 50 DDS Locales and Java locales 20 1 ececcceceeceeeeeeeeeeeeeeeeeeceaeeeseaeeeseaeeessaaeeeeeeeesnaeeeeneees 51 Storage example Saai aitia ltd ineno aoge ias ai ia aa laa aaa dade en end 51 Services FrameWoiK arii iaaa aiai datai aaa aiaia dau duet ah iida ai aia hdi Seana 52 S rvices Lifecycles inira aaeain aiaa idia eei aaa a aa 55 Operation Framework oisiioreiiiine aie iei i da dieu dee ial onions 57 User Seri Eii aeit atv aie aia Meee haat Gnade a eerie Davee 61
158. ptions Disk pages o B eng I Library Id Index B Library Id Index Concurrent 2 amp CollectionMetadata I Library Name Index BA Library Name Index A Concurrent 2 Beng kitchensink xml Working with Applications Each application has its own named node directly under the APPLICATIONS node in the Applications tab Application objects are stored in documents in sub libraries Standard application object types include xsd XMLSchema Stylesheet Dynamic Delivery Services User Manual 102 DDS Admin Client xml XML document In addition to the standard object types you can add application specific documents for example DITA maps Creating an application 1 Select the Applications tab 2 Select the APPLICATIONS folder 3 Click the Create application button The Create application dialog appears 4 Enter a new Name 5 If necessary set its Library options 6 Click the Submit button The new application appears at the bottom of the Applications tab Renaming an object 1 Select the Applications tab 2 Select the object you want to rename 3 Click the Rename button The Rename dialog appears 4 Enter a new Name Note Do not change standard file extensions 5 Click the Submit button The new name appears in the current folder Deleting an object 1 Select the Applications tab 2 Navigate to the object you want to delete 3 Click the Delete button A confirmation dialog appears
159. r trees based on XQuery for content rendering as well as basic components such as spinners date pickers etc The core widgets in the com emc documentum xml gwt packages are independent from other DDS components Usage For usage examples see the kitchensink demo application and other demos Note The Google Web Toolkit should be present on the development system Specific versions exists for Windows Linux and MacOS X When developing with the GWT widget library gwt user jar and gwt dev lt operatingsystem gt jar must be referenced GWT Application Service The GWT Application Service allows developers to retrieve configuration information about the DDS Application This information is made available by means of an Application Context object This is codified in the com emc documentum xml dds gwt client rpc ApplicationService interface which provides the following method e getApplicationContext returns the application context object that provides access to configuration information about the DDS application Usage The following example demonstrates the usage of the Application Service ina GWT client application ApplicationServiceAsync applicationService DDSServices getApplicationService applicationService getApplicationContext new AsyncCallback lt SerializableApplicationContext gt public void onSuccess SerializableApplicationContext result Handle the SerializableApplicationContext result her p
160. rary provides application developers with a collection of GWT based browser widgets and associated services tailored for interaction with xDB Dynamic Delivery Services User Manual 84 Client Services Concepts The GWT Widget Library allows application developers to abstract the DOM based elements in the browser into functional components Written in Java the GWT widgets manipulate DOM elements to execute the actual functionality Interaction between components is further abstracted by event listeners so components need not communicate with each other directly widgets can fire and catch events and strong links between widgets are not required For information on events and listeners go to the GWT website under Docs User Interfaces Events and Listeners GWT supplies internationalization mechanisms so that messages labels etc can easily be translated All pure GWT widget functionality resides on the client side Interaction with a server is accomplished through remote procedure calls and HTTP requests Scalability depends primarily on server side considerations like the amount of data and interaction with remote servers Customization or extension can be achieved by extending the widget classes or by modifying the CSS Cascading Style Sheets Specific widgets exist to supply higher level and more specialized functionality For example there are widgets specifically designed to ease interaction with xDB and with the Logic Engine fo
161. ration In the XSL formatter section of the configuration additional properties for the XSL formatter can be specified Note Currently only Apache FOP is supported See http xmlgraphics apache org fop for information on FOP and the syntax of the FOP configuration file The entry has the following format lt xslFormatter gt lt fop gt lt configurationLocation gt path lt configurationLocation gt Dynamic Delivery Services User Manual 72 API Frameworks and Services lt fop gt lt xslFormatter gt The entry lt configurationLocation gt specifies the path to the FOP configuration file During initialization of the XProc service the configuration file will be looked up in the Java classpath if not found the system will try to interpret the path as a file system path In order to use non standard fonts with FOP the following steps must be performed on the server machine Install the fonts if they are not available by default Generate FOP font metrics file see http xmlgraphics apache org fop for more information Create a FOP user configuration file with proper font related configuration Update the services configuration file of the Application so that it points to the FOP configuration file 5 Make sure that the XSL stylesheets used for generating the XSL FO content use proper fonts Pw he The following configuration registers a custom resolver module that provides the XProc processor with the abilit
162. ration The prefix name and namespaceuri together form a QName Only name representing the QName s local part is required value Example value true The value of the option lt dds parameter gt The parameter tag specifies a parameter to an XProc pipeline This tag is only meaningful within an xproc tag Optional prefix Example prefix dds namespaceURI Example namespaceuri http com emc documentum xml dds taglib Required name Example name show_xml_declaration The prefix name and namespaceuri together form a QName Only name representing the QName s local part is required value Example value true The value of the parameter lt dds blob gt The blob tag inserts an image element into the output with the proper URI to be able to locate the image Optional uri Example uri dds DOMAIN data DATASET garage LOCALE eng image carwash gif The URI pointing to the blob resource The result in the output based on the above example will be lt img src Blobservlet uri dds DOMAIN data DATASET garage LOCALE eng image carwash gif gt alt Example alt Carwash The value of the alt argument to include for the resulting img element Usage The following example demonstrates usage of the Tag library in a JSP First the context node is set to the concepts oil xml document in the English locale of the garage dataset This document is then transformed using the stylesheet found under the sty
163. re provided for creating the minimal layout Alternatively you can use the Admin application to create the layout 3 Configure additional Stores if any Stores other than the Main Store need to be configured Configure any and all Stores that the Application needs access to except for the Main Store which is configured in the application bootstrap xml file You must manually createa Stores xm1 configuration file which contains the configuration data for the Stores This file must be stored in the Main Store by default in APPLICATIONS lt application_name gt Stores xml Every Store should have its own unique Alias for the Application which the Application must use throughout to refer to that Store When the Application has been started all the Stores configured in the document will be available in the StoreManager See Application Configuration for more information 4 Configure Structures if required If no Structures DataSets that the Application requires access to need to be configured this step can be skipped You must manually createa Structures xml configuration file which contains the configuration data for the DataSets This file must be stored in the Main Store by default in APPLICATIONS lt application_name gt Structures xml Each DataSet has to be assigned a unique Alias for use throughout the Application to refer to the DataSet The reason for the Alias is that while the Id of the DataSet will be unique in
164. renders the selected document to a variety of formats Document v Language v Data Set v Search iai EN Topics F Concepts F Tasks amp Maps HTML 3 xme Y Contents amp amp Tasks fal Changing the oil in your car Washing the car fl Organizing the workbench and E Shovelling snow E Spray painting El Taking out the garbage Keep your car looking great by washing it regularly E Washing the cal Move the car onto the driveway Attach the water hose to a spout and pull the free end over to the car Filla bucket with soapy water Use a sponge to apply the soapy water to the car and scrub off the dirt Rinse the car by spraying clean water from the hose Dry the car using a dampened chamois 1 2 3 4 5 6 v Compose B New Publication Related concepts Water hose Contents panel At top left of the main area this component allows the user to browse the documents in the current data set It shows the titles of all the DITA documents contained in the data set of the selected type or present in the current search results An icon before the title indicates the type of the document Selecting the DITA document type is done by clicking on the corresponding button in the button bar Topics Concepts Tasks or Maps When a search has been submitted the search results appear in the content panel which can then contain a mix of different types of DITA documents
165. res Configuration indicating two DataSets that will be available in the Application the garage DataSet and the britannica DataSet Dynamic Delivery Services User Manual 46 API Frameworks and Services lt Soric tues gt lt datasetref gt lt alias gt garage lt alias gt lt storeAlias gt main lt storeAlias gt lt id gt garage lt id gt lt defaultLocale gt en_US lt defaultLocale gt lt datasetref gt lt datasetref gt lt alias gt britannica lt alias gt lt storeAlias gt main lt storeAlias gt lt id gt britannica lt id gt lt defaultLocale gt en lt defaultLocale gt lt datasetref gt lt defaultDataSet gt garage lt defaultDataSet gt lt structures gt The default DataSet for the application is the garage DataSet The garage DataSet has en_US as default Locale and the britannica DataSet has en as the default Locale The Default DataSet and Default Locale tags can be omitted in which case no defaults will be defined for the Application Note Default Locale should not be specified for DataSets which are not locale aware The Alias can be chosen freely provided it is unique within the Application i e no two configured DataSets should be configured with the same Alias The StoreAlias is the alias of the Store in which the DataSet resides The Id is the Id of the DataSet in that Store Within a Store the Id must be unique However different Stores can cont
166. returns a Collection containing all known Stores e addStore adds a Store to the StoreManager ServiceManager Interface The ServiceManager interface com emc documentum xml dds application ServiceManager provides the following methods e getService for retrieval of Services corresponding to the supplied Service type or name e createService creates a new Service object of the specified type using the specified class e initializeServices initializes all the Services in a safe order based on the dependencies that the Services declare It returns a boolean indicating whether the Services were initialized successfully e startServices starts all the Services in a safe order based on the dependencies that the Services declare It returns a boolean indicating whether the Services were started successfully pauseServices pauses all the Services in a safe order based on the dependencies that the Services declare It returns a boolean indicating whether the Services were paused successfully e resumeServices method will resume all the Services in a safe order based on the dependencies that the Services declare It returns a boolean indicating whether the Services were resumed successfully stopServices stops all the Services in a safe order based on the dependencies that the Services declare It returns a boolean indicating whether the Services were stopped successfully StructureManager Interface The StructureManager interface com emc
167. ribute the attribute name of the suggestion If the attribute has a URI an icon before the attribute name serves to display a popup text when you hover over the icon Indexed Yes if the index already exists In this case you cannot select the index suggestion If an index with different properties already exists on the same node s a warning icon is shown Data type the data type of the indexed value If the data type can be changed the data type can be selected from a list box Options shows whether or not the index is Concurrent By hovering over the icon you can see all options of the suggestion Samples the number of samples found in the analyzed data set The maximum sample size is 20 Samples is not applicable for indexes on nodes that have non text child nodes Rating number of different sample values number of samples found 100 Rating is not applicable for indexes on nodes that have non text child nodes If all samples of a suggestion have a different value the rating is 100 This can also be the case where only one sample is found If 20 Rating sample values are found and they all have the same value then the rating is 5 e Data Analysis e Creating an Index e Changing Index suggestion options e Resetting Index suggestions Data Analysis When you choose Analyse Data on the Index suggestions tab of a DATA Collection an analyzer is run against the Dataset Note Analyzing a full dataset can be time c
168. s to individual nodes in the XML documents Any actions on the data such as creating Locations retrieving or storing data from or into Containers deleting data happen through Persistors which implement the correct behaviour for the Stores A Store is always accessed through a Session which provided the Store supports it offers transactional behaviour One Store is singled out and configured as the Main Store of the Application The Main Store is where all configuration data and application specific resources will be kept The Application keeps track of and offers access to the Stores that have been configured by means of the StoreManager Configuration of the available Stores happens through the Stores xml document in the Main Store See Application Framework and Persistence Layer for more information Data Organization Whereas the Persistence Layer offers lower level access to the storage facilities the Structures Framework offers higher level concepts for keeping data organized A DataSet is a set of data which logically belongs together and is independent of the Application It is up to the Developer and Administrator to determine how data should be divided into DataSets This will depend on how the data should be used A DataSet is always stored inside a single Store it is not possible to store half of a DataSet in one Store and the other half in another Store Access to DataSets for reading or writing data happens through the
169. server For example an Operation which is supposed to copy a document would specify the Store Location and Container of both the source and target document An OperationExecutable is the executable counterpart to an Operation It is a server side object which ties the operation to an Application It can access the information from the corresponding Operation and execute the action The OperationManager is the Manager which provides the API for executing an Operation An OperationSequence is a sequence of Operations which will be executed as if it were a single Operation It can contain a number of Operations including other OperationSequences A SessionStoreUserStrategy is a Strategy which decides which StoreUser will be used for a particular User when executing an operation for that User which involves a Store For example all operations could be executed with the same StoreUser or every User could have his own personal StoreUser See the User Service documentation for more information about the User concept Interfaces The Operation Framework concepts have been codified into interfaces in the com emc documentum xml dds operation framework package Operation The Operation interface com emc documentum xml dds operation framework Operation provides accessors to the following Operation properties e Operation Id an identifier which can optionally be assigned to an Operation for subsequent identification When executing a
170. service example UserServiceAsync userService DDSServices getUserService userService login username password new AsyncCallback lt Boolean gt public void onSuccess Boolean result Handle the Boolean result her public void onFailure Throwable caught Handle exceptions here XQuery service The XQuery service interface com emc documentum xml dds gwt client rpc xquery XQueryService provides a GWT RPC interface for XQuery execution XQuery service example XQueryServiceAsyne xqueryService DDSServices getXQueryService xqueryService execute uri topicref href new AsyncCallback lt List lt SerializablexQueryValue gt gt public void onSuccess List lt SerializablexXQueryValue gt result Handle the list of SerializableXQueryValue objects her public void onFailure Throwable caught Handle exceptions here OE XML Persistence service The XML Persistence service interface com emc documentum xml dds gwt client rpc persistence XMLPersistenceService provides a GWT RPC interface for XML persistence functionality XML Persistence service example DDSURI resourceURI new DDSURI temp resourceURI setAttribute DDSURI ATTRIBUTE_DOMAIN DDSURI DOMAIN_RESOURCE XMLPersistenceServiceAsyne xmlService DDSServices getXMLPersistenceService xmlService getChildren resourceURI toString Dynamic Delivery Services
171. ssible by the Application It contains the Configurations for Store objects Dynamic Delivery Services User Manual 42 API Frameworks and Services e Services Configuration contains the Configuration for all the Services that are provided by the Application It contains Service Configurations e Each Service Configuration contains the configuration for a single Service e Structures Configuration contains the configuration for all DataSets that are available to the Application e XBasesConfiguration contains the Configuration for the XBases defined for the Application Interfaces The Configuration concepts have been codified into interfaces in the com emc documentum xml dds configuration package Configurable Interface The Configurable interface com com emc documentum xml dds configuration Configurable provides accessors to the following Configurable object e configuration object the object used for configuration of the Configurable The Configurable interface provides the following methods e activateConfiguration applies the current Configuration to the object The return value indicates whether the operation was successful e configure a convenience method which sets the specified Configuration and then activates 1t Usage Using the Application Bootstrap The example Application Bootstrap below is serialized with the DefaultDDS Serializer lt bootstrap gt lt name gt demo lt name gt lt mainStore class XDB
172. sterXBase myResponseFilter xBase Dynamic Delivery Services User Manual 65 API Frameworks and Services Preprocessing Responses Use preprocessing if there is a need for normalization or some other transformation before a Response can be stored Other operations can be performed during preprocessing but if no transformation is intended they should probably be executed as postprocessing This allows the Response to be stored as quickly as possible An implementation of a ResponseProcessor could look something like Response process Response response String oldXml response asString String newXml transform the XML return new SimpleResponse newXml1 A PreProcessor is registered by executing responseService registerPreProcessor myResponseFilter myProcessor Note Keep in mind that when a Response has been processed by a PreProcessor or a PostProcessor for further processing i e filter checking processing and storage in the Response Service it is replaced by the Response received from the process call Logging Framework The Logging Framework provides some facilities for server side logging Concepts The Logging Framework is built around the following concepts e The LogCenter object provides all the configuration options as well as the methods for logging messages and exceptions e A Logger outputs logged messages to a configured output medium such as standard out or
173. t executes S1000D Process Data Modules and provides interactivity with the user To show usage of the Logic Engine a demo application is included The S1000D Process Data Module specification is a standard for interactive processing structures See http s1000d org for more information about S1000D The Admin application DDS comes with a web application see admin for use with basic application admininstration and development work including e Manage applications e Create rename and delete applications e Add rename delete and browse application libraries e Add edit rename and delete XML documents in libraries e Add rename and delete non XML documents in libraries e Browse data sets and manage indexes See the DDS Installation Guide for information about building deploying and running Admin Uploading data into the XML Store Content for DDS applications can be uploaded into the XML Store by means of e DDS Ant tasks e the DDSDatalmporter Java API From EMC Documentum data can be provided to DDS through the EMC Documentum Site Caching Server XML Store Data Layout There are two distinct groups of data in DDS 1 Data Sets which are composed of actual publishable content data and its metadata 2 Application Data composed of scripts such as XQueries stylesheets XProcs XForms etc Application Data Each DDS application should have its own library inside the library APPLICATIONS For example with two applicat
174. t 8080 kitchensink Note After building the application you can run it in the GWT hosted mode dds ant run Dapplication kitchensink Data set The demo application uses data from the Garage demo data set Using the application The user interface of the application is organized into tabs demonstrating different types of functionality available for GWT based DDS applications View Representing XML and blobs DDS ets you can use to represent repository objects This page st 3 frames representing an XML document a blob and rmed XML document The last widget shows an image representing a blob For all widgets you only need to set the repository path to the object to show Frame with XML document lt xml version 1 0 encoding UTF 8 gt a iC Copyright IBM Corporation 2001 2004 All Rights Reserved This file is part of the DITA package on IBM s developerWorks si See license txt for disclaimers and permissions gt lt map title Hierarchy map xmins xsi http www w3 org 2001 XMLSchema instance Frame with XML document and stylesheet LaunmowerThe lawnmower is a machine used to cut grass in the yard Lawnmowers can be electric gas powered or manual The individual tabs show e Intro introduction e Lists examples of an XML Node tree and a paged XML node list e View frames representing an XML document a blob and a transformed XML document e Compose how the user can build an XML
175. t of running an external application e SerializableNamedValue a name value pair used for representing parameters passed to and values returned by an external application Usage The following example demonstrates how to start a new Process Data Module instance GWT client application SerializableDataModuleRef dmRef Get GWT LogicEngineService instance LogicEngineServiceAsync leService DDSServices getLogicEngineService Start a new process leService initProcess dmRef null new AsyncCallback lt SerializableProcessView gt Process display the returned view object public void onSuccess SerializableProcessView result Handle errors public void onFailure Throwable caught The following example demonstrates how to navigate to the next step of a Process Data Module instance SerializableDataModuleRef dmRef Get GWT LogicEngineService instance LogicEngineServiceAsync leService DDSServices getLogicEngineService Navigate to the next step of the process leService next dmRef null new AsyncCallback lt SerializableProcessView gt Process display the returned view object public void onSuccess SerializableProcessView result Handle errors public void onFailure Throwable caught Related links e Logic Engine Service Dynamic Delivery Services User Manual 93 Client Services DDS Tag Librar
176. ta Module using the sample S1000D bike data set How it works The application registers two Logic Engine related classes in Services xml e com emc documentum xml dds logicenginedemo server DemoDataModuleResolver a Logic Engine data module resolver implementation that is capable of loading Data Modules identified by DDS URIs e com emc documentum xml dds logicenginedemo server DemoStateManager a Logic Engine state manager implementation that stores state information for Process Data Module instances in the user s workspace For displaying the S1000D content in the browser the demo application uses a combination of XProc pipelines and XSLT stylesheets for generating XHTML output These resources are stored in the database and can be found in the resources library of the application Using the application Dynamic Delivery Services User Manual 120 DEMO APPLICATIONS 1 When the application is first accessed with a web browser a login screen will appear Enter admin as user name and secret as password and click Log in 2 Next a screen showing the user s workspace will appear In the image below the workspace contains two Process Data Modules Riding the bicycle ships with the demo and another Process Data Module which is active and can be either resumed or aborted gt A Bicycle Riding a bicycle ei Product advisor In the workspace screen you can do the following e Start a Process Data Module instan
177. tabase A ContentDescriptor is used when storing or retrieving data to specify to the Persistor what the content type of the data is The Data concept models data retrieved from the Store The Metadata concept models the metadata which can be associated with a Container Metadata can be stored in several ways which is modeled by Metadata Schemes e XDB Metadata consist of key value pairs which are stored in the XDB database using a specific mechanism It can only be used for Containers in an XDB Store e Documentum Metadata consist of a separate XML document which is stored in a particular location in a DataSet It can only be used for Containers in DataSets which have the DocumentumStructureStrategy The type of the Store is irrelevant A Session models a transaction on the Store if transactional behaviour is available on the Store A Session is always created for a particular StoreUser on a particular Store and must be provided to the Persistor in order to perform a Persistor action The following concepts model options that can be set on a Location or a Container and that are specific to the type of Store e LocationOptions can model such things as file system permissions on file systems or locking options in an XDB database e ContainerOptions can model such things as file system permissions on file systems or locking options in an XDB database The following concepts provide ways of interacting with the storage facility A P
178. ted and another one may have been rolled back User Service The User Service facilitates user management for Applications It includes facilities for e Creating and deleting Users e Retrieving User information e User login and logout e Password authentication e Automatic deadlock retry looping where a persistence action can fail due to a deadlock a solution is to rollback and retry the transaction a number of times until it succeeds This is automated by the Operation Framework The User Service will be started automatically on Application startup provided it has been configured for the Application see Application Configuration for more information Concepts A User models the end user of an Application see Application Framework for more information It is used for authentication and authorization at the DDS level A User is only valid for a single Application If end user access is needed for multiple Applications a separate User should be created for every Application If a single User of an Application needs access to several Stores the User needs to be mapped to several StoreUsers see Persistence Layer for more information The information for a User is stored in the Main Store of the Application Each User has a Home Location where any objects created by the User will be persisted This Home Location is also stored in the Main Store at APPLICATIONS lt applicationName gt users lt userId gt The User
179. tentDescriptor provides accessors to the following ContentDescriptor property e XML a boolean indicating whether the content is XML or not Data The Data interface com emc documentum xml dds persistence Data provides accessors to the following Data properties e Content contains the actual wrapped data e MIME Type indicates the type of the content e application octet stream for binary content e application xml for XML content and e application java serialized object for serialized objects Metadata The Metadata interface com emc documentum xml dds persistence Metadata provides access to the following Metadata property e Scheme the MetadataScheme of the object StoreUser The StoreUser interface com emc documentum xml dds persistence StoreUser provides accessors to the following StoreUser properties e User Id the user Id of the StoreUser used for authentication with the Store e User Password the password of the StoreUser used for authentication with the Store e Administrator indicates whether the StoreUser is an administrator in the Store e Store Type the type of Store for which this is a valid StoreUser e Store Alias the Store for which this is a valid StoreUser Persistor The Persistor interface com emc documentum xml dds persistence Persistor provides accessors to the following Persistor properties e Store Type the type of Store for which this is a valid Persistor e Serializer the Serializer obje
180. ter with attributes name and value Available options and default values are specified in the W3C DOM Load and Save spec and the database manual e blobfileset Extension of Ant fileset to specify all files that must be imported as blob See Ant fileset attributes Note The content filesets are locale aware xmlfileset and blobfileset have an additional optional attribute locale See the import data task for an example lt dds import application data application application databaseref demo database overwrite true quiet false gt lt libraryoptions gt lt option name concurrent library value true gt lt option name concurrent namebase value true gt lt libraryoptions gt lt dds xmlfileset dir dds garage data application gt lt domconfiguration gt lt parameter name validate value true gt lt domconfiguration gt lt include name xpl gt lt include name xsl1 gt lt dds xmlfileset gt lt dds blobfileset dir dds garage data application gt lt include name txt gt lt include name properties gt lt include name css gt lt dds blobfileset gt lt dds import application data gt Dynamic Delivery Services User Manual 22 Administration import data Imports content data and schemas This task has the same attributes and elements as import application data In addition import data can also contain the following
181. tion garage 2 Load sample data dds ant load all data Dapplication garage 3 Create the application WAR file DDS build garage garage war and deploy it ina servlet container dds ant create war Dapplication garage 4 If not otherwise configured the application will be available at http localhost 8080 garage Note After building the application you can always run it in the GWT hosted mode dds ant run Dapplication garage Application resources In the application area in the database there are four libraries The xslt library contains the stylesheets used for rendering the documents e The xproc library contains the XProc pipelines used for rendering the documents e The xforms library contains the XForms underlying the search functions accessible from the menu bar e The temp library contains temporary files generated by the application It will be created by the application if it doesn t exist yet If it exists and contains documents older than 12 hours these will be deleted Data sets To work properly with the application a data set must be organized in the following way Dynamic Delivery Services User Manual 113 DEMO APPLICATIONS e The documents are stored in the library DATA lt name of dataset gt Collection lt language code gt where lt language code gt is the library containing all the documents for the language represented by that code The code is a valid ISO 3 letter code such as eng for E
182. tly This section is only relevant if the corresponding Operations cannot be used and fine control is needed over transactions Any persistence action requires a Store and a StoreUser to create a Session on the Store using the Store getSession StoreUser method This produces a Session which encapsulates an actual transaction on the Store It can only be used for persistence operations on that particular Store In order to start the Session and before using it in the persistence transactions it must be activated by calling its begin method When all persistence actions have been performed they should be committed by calling the commit method on the Session which will actually commit the changes If for some reason the operations need to be rolled back the rollback method can be called instead Check whether the library MyApp Documents exists in the Store Store store Application getStore MyStore StoreUser storeUser store getDefaultStoreUser Location location store getLocation MyApp Documents Persistor lt Object gt Persistor PersistorFactory constructPersistor store Session session store getSession storeUser session begin persistor create session location session commit Working with Locations The easiest way to obtain a Location object is to call the getLocation method on a Store directly This creates a Location object of the correct type with default L
183. tom XML extensions enable option Use custom XML extensions and enter Custom XML extensions If necessary set Library options for new libraries Click the Submit button The uploaded libraries and or documents appear in the current library Working with XML documents Admin can rename and delete any existing document just like other objects XML documents can be also be viewed created and edited Admin provides a simple text editor you can use for editing of content of XML documents The editor supports standard keystrokes including Dynamic Delivery Services User Manual 105 DDS Admin Client Cursor control keys e arrow keys e Home End Page Up Page Down e Ctrl Home Ctrl End e Ctrl Left Ctrl Right Text selection using Shift with cursor control keys Select all Ctrl A Delete Backspace Ctrl X Cut Ctrl C copy Ctrl V Paste Adding an XML document You can add XML documents to Applications by either manually typing XML content or by uploading content from an external XML document Note If you need to copy content from existing XML documents use Copy and Paste 1 2 3 Select the Applications tab Select the library you want to add to Click the Add XML document button The Add XML document dialog appears Enter a new Name Enter XML source code e Enter text into Source edit box or e Browse to or Enter the path of an XML file in the Upload box Click the Submit button The
184. tomatically reverts to Paused In Resuming State calling any of the Service methods should normally result in a ServiceNotReadyException Stopping When Stopping a Service will perform any processing necessary before going to the Stopped State Allowed actions none When the Service has successfully completed processing the State automatically goes to Stopped If processing results in any failure the State automatically reverts to Running In Stopping State calling any of the Service methods should normally result in a ServiceNotReadyException Operation Framework The Operation Framework facilitates the execution of server side actions It provides e Automatic Session management Sessions do not need to be created started or committed the framework makes this transparent to the developer e Sequencing of Operations the developer can bundle a number of Operations and have them executed in one Session e Support for transactions transactions are supported but only to the degree that the underlying Stores support them e Automatic deadlock retry looping where a persistence action can fail due to a deadlock a solution is to rollback and retry the transaction a number of times until it succeeds This is automated by the Operation Framework Dynamic Delivery Services User Manual 57 API Frameworks and Services Concepts An Operation is an object which contains all the necessary information to execute an action on the
185. ublic void onFailure Throwable caught Handle exceptions here Dynamic Delivery Services User Manual 85 Client Services Related links e GWT Services e Application Framework GWT User Service The GWT User Service provides Developers a GWT front end for the User Service This is codified in the com emc documentum xml dds gwt client rpc application UserService interface which provides the following methods e createUser for creation of Users e deleteUser for deletion of Users e login for logging in of a User e logout for logging out of a User e existsUser check for the existence of a User e storeUserObject allows the User to store objects at its Home Location The supplied path is relative to the Home Location e retrieveUserObject allows the User to retrieve objects from its Home Location The supplied path is relative to the Home Location Related links e User Service GWT Log Center Service The GWT Log Center Service provides the developers with the ability log messages back to the server This is codified in the com emc documentum xml dds gwt client rpc LogCenterService interface which provides the following methods e log logs a message e warning logs a warning message e error logs an error message e exception logs an exception message The following example demonstrates the usage of the Log Center Service in a GWT client application tiy i Execute some
186. uild xml to be found in applications application bin Dynamic Delivery Services User Manual 18 Administration Parameters e application load application data Loads an application s data e g xforms xprocs xslt files etc into the database Administrator Actually this target just invokes the load application data target in the application s own build xml to be found in applications application bin Parameters e application load data sets Loads an application s data sets into the database Administrator This target invokes the load data sets target in the application s own build xml to be found in applications application bin Parameters e application load all data Loads both an application s data and its data sets into the database Administrator Parameters e application clean Deletes everything in the build folder and cleans op anything left behind by Eclipse or by the GWT shell and compiler Developer Building an application using the build target and running an application in hosted more using the run target creates folders and files in the DDS build folder The clean target will clean all of those up for you Parameters none create template Creates a template folder structure under the applications folder for the development of a new DDS application Developer The root of the application structure will be applications application Also a
187. used and resumed and stopped as well The Application will automatically initialize and start all the configured Services when it starts up pause all Services when it is itself paused and so on See Application Framework and Services Framework for more information Operations The Application also offers access to the Operation Framework which underlies the Services It models basic functions as Operations which can be executed independently Operations can also be strung together in an OperationSequence which can execute all the Operations in one go as if they were a single Operation To a limited extent an OperationSequence can have transactional behaviour An Operation library has been provided modelling all persistence actions The Operation framework takes care of Sessions rollback and concurrence and is the preferred way of accessing and storing data Operations are executed using the OperationManager See Application Framework and Operation Framework for more information Server side Application Development Application development usually starts with the server side of the Application 1 Prepare data Upload the DataSets the Application will use You can use Ant tasks for this purpose Dynamic Delivery Services User Manual 27 API Frameworks and Services 2 Create the Application Some basic setup information must be present in the Main Store the Store that is the home of the Application Ant tasks a
188. ve the Stores Structures Services and XBases either directly through the relevant convenience methods or by retrieving the StoreManager StructureManager ServiceManager or XBaseManager and invoking their appropriate methods Application Configuration Application configuration uses the Serialization and Persistence functions to serialize and deserialize objects to and from XML Configuration files are therefore serialized Java objects There are two alternatives e If an object is simple its serialized form can serve directly as either a configuration file or part of a configuration file For example a Store object or StoreUser object can serve as its own configuration e For more complex objects separate Configuration objects are available The Application Bootstrap is an example of this Concepts Generic concepts for configurability include e Configuration interface signals that a Java object is used as a Configuration for some DDS entity It offers no functionality e Configurable interface is implemented by any Java object that can be configured with a Configuration The following concepts model Configurations for specific DDS entities e Bootstrap the initial configuration needed by an Application It contains e the name of the Application e the configuration for the Main Store e references to the Configuration files for the Stores and the Services e Stores Configuration contains the Configuration for all the Stores acce
189. ver features of the product e Client Services describes client features of the product e Admin client an introduction to using the Admin web client e Demo Applications an introduction to using some of the included demo applications Intended audience This manual is written for application developers and system administrators who want to build XML delivery applications It assumes familiarity with the concepts of document processing It also assumes a working knowledge of web based software development JAVA and XML Conventions This document uses the following conventions Conventions Convention Meaning Initial capital letter In DDS terms and concepts words start with a capital letter For example DDS Application Persistence Layer example code Program code and commands used in examples String pipelineURI Sierealiove Cerca g 5 of boolean readOnly true Get the GWT XProcService instance Dynamic Delivery Services User Manual 3 Preface Convention Meaning filenames and File names and file paths for example pathnames Go to the DDS bin folder Set values in the properties files Revision history The following changes have been made to this document Revision history April 2008 First publication December 2008 Service Pack 1 Getting information Document files Files containing information about included software licensing and API usage can be accessed in folder DD
190. web xml file Dynamic Delivery Services User Manual 98 DDS Admin Client DDS Admin Client The Admin user interface The Admin application provides views on applications and on data sets and their indexes You can access these views by clicking the corresponding tab in the tab menu bar Applications Manage indexes The Admin views have a common layout which includes from top to bottom e Logo area e Views Tab area e View area e Navigation pane left e Info pane top right icon Name Type Path of selected item e Content pane context sensitive e on Applications tab shows buttons for the selected object e on Manage Indexes tab shows tabs and buttons for the selected object e Version area Applications libraries and documents Applications can be created only in the root folder of the APPLICATIONS tree A library can be added to an application or to another library A document can be added to an application or to a library Applications B Manage Indexes amp root library Name EI APPLICATIONS Type Library Path APPLICATIONS garage resources xforms GarageT itleSearch W garage Add library Add XML document Add BLOB Upload ZIP file Rename Delete amp configuration amp resources amp xforms o GarageTitleSearch E form xf schema xsd f description txt amp xproc Bi xslt W kitchensink amp DATA Indexes Index Manager hides much of the complexity of generating in
191. without reference to the type of the underlying storage facilities e g an XML Store a file system or a Documentum repository Frameworks On top of the persistency layer are a number of frameworks the most important of which are e Application Configuration for configuring an application in terms of stores used services used users authentication etc e Operation Framework for executing server side functionality in a controlled manner i e with among others automatic session management and transaction support e URIs for providing access to all persistent content through URIs e XProc Engine for interpreting and executing XProc pipelines e Logic Engine for interpreting and executing Process Data Modules DDS API and Services The Persistence Layer and the Frameworks together provide the DDS Platform s API Some of its functionality is exposed to the developer in a more controlled way through the DDS Platform Services e g UserService XProcService TokenService Web Server On top of the core is the layer adapting DDS core services to specific clients or client types e Through the SCS Target data from a Documentum Content Server can be imported into a DDS store Note The SCS Target is actually not shipped with DDS but with Documentum SCS e An extensive set of GWT services is available to GWT based DDS clients Dynamic Delivery Services User Manual 8 Introduction e For JSP based clients DDS offers a tag library of co
192. xecute the afterRun method of the OperationExecutable e Commit the Session e Return the Result Working with OperationSequences The following example shows how to work with an OperationSequence OperationSequence sequence new OperationSequence sequence setId SeqId sequence addOperation CreateLocationl new CreateLocationOperation this storelId locationl true sequence addOperation CreateLocation2 new CreateLocationOperation this storelId location2 true BlackBoardResult result BlackBoardResult OperationManager execute userl sequence Basically the Operation Framework behaves much like a single Operation with some additions e If an Operation fails all the Operations will be rolled back but in reverse order Dynamic Delivery Services User Manual 60 API Frameworks and Services e If an Operation fails all Sessions will be rolled back e An OperationSequence always returns a BlackBoardResult Note If all of the Operations use one and the same Store and that Store supports transactions the entire OperationSequence will take place in a single transaction and rollback will amount to rolling back that transaction and should never cause any issues However if multiple Stores are used and an Operation fails the rollback will be a best effort due to the lack of a two phased commit the Stores may be in an undefined state one Sessions may have been commit
193. y Developers can use a library of DDS specific tags in JSP based applications as opposed to for example GWT based applications Below is a list of supported tags with a description of each tag its optional and required attributes and the possible exceptions that may occur The prefix used is arbitrary as long as it is properly declared in the JSPs lt dds session gt Every time you use DDS tags in a JSP you should use session tag as the outermost tag for proper session management Nesting session tags is of no use Optional userName Example username Administrator The username for the session retries the maximum number of retries that should be attempted when getting deadlock exceptions readOnly Indicates whether the Sessions under this tag should be read only or not Example readOnly true lt dds contextnode gt This tag is used to set the context node for example for XQueries or transformations see below The contextnode tag is normally used once before the outermost foreach tag see below to set the initial contextnode for XQueries Required uri Example uri dds DOMAIN data DATASET garage LOCALE en_US concepts oil xml lt dds tostring gt This tag copies the toString value of the current context node to the page output lt dds transform gt The transform tag is capable of tranforming the contents of a node into any other format by using an XSLT transformation The XSLT source is found eith
194. y to access content using the FTP protocol In addition to that the FOP formatter will be using configuration file fop config xml lt xprocservice gt lt type class DDSServiceType gt XPROC lt type gt lt name gt XProcService lt name gt lt className gt com emc documentum xml dds xproc impl XProcServiceImpl lt className gt lt io gt lt resolverModules gt lt string gt com example xproc FTPURIResolver lt string gt lt resolverModules gt SLOS lt xslFormatter gt lt fop gt lt configurationLocation gt fop config xml lt configurationLocation gt lt fop gt lt xslFormatter gt lt xprocservice gt Logic Engine Service The Logic Engine Service provides the functionality of the S1000D Process Data Module Logic Engine to Applications The Logic Engine Service will be started automatically on Application startup provided it has been configured for the Application see Application Configuration and XProc Service Configuration for more information Concepts A DDS Logic Engine represents a wrapper object on top the Logic Engine that provides necessary integration with DDS and its frameworks A Logic Engine instance is always bound to a particular User All resource manipulations both read and write are performed using this user information For resolving Process Data Modules and other content the Logic Engine implementation uses so called Data Module Resolver A running instance of a Process Data M

Download Pdf Manuals

image

Related Search

Related Contents

TANDBERG MXP User Guide - Region 10 Education Service Center  Dell A02 Systems Management Guide  Origin Storage 250GB TLC SATA  Manuale d`uso del Nokia 2300  CT782W  S800 - セイコーウオッチ  簡単制御ソフト取扱説明書  intext:Installationsanleitung filetype:pdf    PowerPC 7457 RISC Microprocessor PC7457 - Digi-Key  

Copyright © All rights reserved.
Failed to retrieve file