1 Introduction to Oracle WebCenter Content: Imaging
This chapter includes the following sections:
1.1 Overview of Integration Options
Imaging provides the following two integration options: native Java API and Web services.
Native Java API
The Imaging native Java API offers a comprehensive set of Java classes providing access to all aspects of Imaging. It is the easiest option from environments that can directly reference Java code. Because it is implemented with client-side Java code, the API provides a number of convenience utilities for common tasks such as populating data structures, searching and sorting collections, and enumerating data types. Moreover, the native Java API acts as a wrapper for Web services. In this way, an integrator can use the Java API and need not worry about the underlying Web services implementation.
Web Services
Imaging functionality is available directly as Simple Object Access Protocol (SOAP) based Web services. These services allow access to Imaging functionality in non-Java environments that support calling Web services. All of the core functionality of the Imaging API is available in the Web service set.
Because the Imaging API is exposed as Web services, access to Imaging functionality is available to any programming environment supporting Web services. Access Imaging like any Web service by using the Imaging Web Services Description Language (WSDL) to generate implementation classes for those services.
Application Extension Framework
Oracle provides productized integrations with business applications like Oracle E-Business Suite. These integrations are enabled by the Application Extension Framework (AXF) component of Imaging. The AXF provides a command-driven, web services integration that allows administrators to configure and modify multiple business process solutions separate from the systems themselves. For more details about the AXF and AXF imaging solutions, see About Application Extension Framework (AXF) in Administering the Application Adapters for Oracle WebCenter.
1.2 Common API Model
The Imaging API has been implemented based on service-oriented architecture design patterns. The components of the model can be broken down into the following two categories: services and objects.
Services
The services translate into Web service requests. These services do not contain data, but provide methods to accomplish common tasks such as creating a document. The services move data objects back and forth to the Imaging servers.
Objects
Objects contain only data. The only methods they provide are simple get and set operations for the object properties.
See the Imaging Java API Reference guide for detailed information about Imaging services, methods, and parameters. Code samples that demonstrate many key API features are provided throughout this guide.
1.2.1 Understanding Services
Imaging services can be divided into the following categories:
-
Definition: The definition services provide the functionality to manage the structure of the Imaging system including applications, searches, and inputs.
-
Document: The document services provide the functionality to manage the content within an Imaging system.
-
System: The system services provide the functionality to manage the Imaging system.
The following common methods are available among these services when applicable:
Methods | Description |
---|---|
|
The list method is used to find definitions with which the current user can interact. The type of interaction, such as view or modify, is defined using the |
|
The get method is used to retrieve a definition object. This method includes an array of |
|
The create, update, and delete methods provide standard maintenance functions for their respective objects within the limits of the current user context. |
1.2.1.1 Definition Services
The following definition services provide basic creation and maintenance of the structure of the Imaging system.
1.2.1.1.1 ApplicationService
An Imaging application represents a document repository with a uniquely configured set of metadata, privilege assignments, document lifecycle specifications, workflow integrations, auditing configurations, and other items necessary to properly manage documents and transactions. ApplicationService provides the facilities to find, create, modify, and delete applications. The definition of the application resides within an application object that contains multiple subobjects.
1.2.1.1.2 SearchService
Imaging is designed to provide storage for a large number of documents. Because it can be difficult for users to navigate a large number of documents by browsing folders, the Imaging system provides a comprehensive searching solution as a more efficient way to find desired content. SearchService is used to find, delete, and execute searches. Because search definitions are complex entities, it is best practice to create a search using the Imaging user interface and then save it in the system. Saved searches provide an effective mechanism to leverage complex queries through an integration. It only requires that you know the name of the search and the desired search parameter values.
1.2.1.1.3 InputService
InputService is used to find, create, modify, and delete input definition objects. InputService allows state modifications as well as toggling an input online/offline. It allows users to upload sample data as well as to get definition file information.
1.2.1.1.4 ConnectionService
ConnectionService is used to find, create, modify, and delete connection definition objects. Connections are used to connect Imaging to workflow servers and Content Server repositories.
1.2.1.2 Document Services
The following document services are used to create and maintain document content in Imaging.
1.2.1.2.1 DocumentService
DocumentService is used to access, lock, move, copy, modify, and delete the documents within the Imaging repository. All document service method actions are bounded by the current user context and the associated document security configured in the application in which the document resides. DocumentService also maintains the annotations associated with a document and provides the ability to render documents into image formats.
1.2.1.3 System Services
The following system services provide functionality relevant to the management of the Imaging system.
1.2.1.3.1 LifecycleService
LifecycleService provides the ability to obtain information about the storage volumes that are available for document storage. The volume objects represent the storage media. Storage volumes are associated with documents in the application definition.
1.2.1.3.2 LoginService
LoginService establishes and terminates user sessions for Imaging. A session must be established before any of the other services may be used.
1.2.1.3.3 PreferenceService
PreferenceService provides the ability to store preference information at either the system or the user level. The system level provides a single configuration instance for an Imaging installation while the user level provides a unique configuration instance for each user. This service provides basic storage and retrieval of those preference settings. Note that if setting preferences from the API, you must be mindful of type. There is no validation against an incorrect setting passed through the API. Validation occurs only when preferences are set through the user interface.
1.2.1.3.4 SecurityService
SecurityService provides mechanisms to query the system for users and user groups that exist within the encompassing security environment. It also provides the ability to retrieve and define the security privileges that are beyond those security elements defined within each of the system definition objects.
1.2.2 Understanding Data Objects
The system services provide management at the Imaging API level. Integrators can leverage concepts that span multiple Imaging API calls.
1.2.2.1 Identification
The NameID class provides the basic means of identifying an entity, such as an Application, Search, or Input, within the system. All entities have both a unique identifier which is numeric and a name which is represented by string data type. Either the numeric identifier or the name can be used to refer to specific entities within Imaging. The NameID class will hold the numeric, string, or both identifiers. If both identifiers are provided, the numeric ID is used. Id must be 0 (not provided) for Name to be used. This class is returned by all of the list() functions providing the caller with a list of both the numeric and string identifiers for the objects listed. The get() functions that accept a NameID allow the integrator to use either the numeric ID or the name to retrieve the desired entity.
1.2.2.2 Sections
Each object (application, input, search, connection, and document) is composed of multiple subobjects referred to as sections. Object sections include general properties, security grants, and audit history, among others. For convenience, the get() services accept an array of section indicators so that only a subset of the full object's content can be retrieved from Imaging or sent back to Imaging for update. These indicators are defined within the SectionFlag class of each object.
The following table lists the sections available for each definition object.
Section Flag | Application | Input | Search | Connection | Document |
---|---|---|---|---|---|
|
X |
X |
X |
X |
|
|
X |
||||
|
X |
||||
|
X |
||||
|
X |
||||
|
X |
||||
|
X |
||||
|
X |
X |
X |
X |
X |
|
X |
||||
|
X |
||||
|
X |
X |
X |
X |
|
|
X |
||||
|
X |
X |
X |
X |
X |
|
X |
X |
X |
X |
X |
|
X |
||||
|
X |
X |
X |
X |
|
|
X |
||||
|
X |
1.2.2.3 Properties
Each Imaging object contains a subobject called the properties object that defines the properties of that object. The properties object may contain additional subobjects that have their own attributes providing additional complex content.
1.2.2.4 Permissions
Many of the objects define a permissions subobject that specifies the permissions the current user has been granted in relation to the current instance of the object.
1.2.2.5 Security
The definition objects define security subobjects that are used to define what users or user groups have been assigned what privileges. These privileges cover the basic object maintenance actions such as creation, modification and deletion, as well as specific actions unique to the type such as search execution.
1.2.2.6 Audit Events
Many objects include a section for returning the audit history associated with that object. This history includes the actions taken by various users that have affected that object. Audited actions would include creation, modification, or viewing of that object. The audit history records the action that occurred, the user performing it, and the date upon which it occurred.
1.3 Requirements
Imaging clients not running on an Oracle WebLogic Server have the following requirements:
-
JDK 1.6 or higher
-
An installed and operational Imaging system
1.4 Sample of the Imaging Integration API
The following example is a simple demonstration of some of some basic functionality provided by the Imaging integration API. The example simply logs in to the Imaging system, lists viewable applications, and logs out.
Example 1-1 Listing Viewable Applications
package devguidesamples; import java.util.List; import java.util.Locale; import oracle.imaging.Application; import oracle.imaging.ApplicationService; import oracle.imaging.BasicUserToken; import oracle.imaging.ImagingException; import oracle.imaging.NameId; import oracle.imaging.ServicesFactory; import oracle.imaging.UserToken; public class IntroSample { public static void main(String[] args) { try { // try-catch UserToken credentials = new BasicUserToken("ipmuser", "ipmuserpwd"); ServicesFactory servicesFactory = ServicesFactory.login(credentials, Locale.US, "http://ipmhost:16000/imaging/ws"); try { // try-finally to ensure logout ApplicationService appService = servicesFactory.getApplicationService(); // List the viewable applications to confirm that "Invoices" exists List<NameId> appsList = appService.listApplications(Application.Ability.VIEW); for (NameId appNameId: appsList) { System.out.println( appNameId ); } } finally { if (servicesFactory != null) { servicesFactory.logout(); } } } catch (ImagingException e) { System.out.println(e.getMessage()); } } }