Saturday, November 15, 2014

FMW 12c: In-depth look into Oracle API Catalog (OAC)

[repost of article at AMIS Technology Blog on November 14th, 2014]

With the release of Oracle Enterprise Repository 12c another product was released. Oracle API Catalog 12c (OAC) allows you to build a catalog of your organization APIs. OAC provides a layer of visibility to those APIs so application development knows what and which one to use.  OAC includes a simple metamodel for an API asset, automation to populate OAC, and the ability for users to search OAC for APIs and understand the details of the APIs to assess their fit in the user’s application.


I’m not going to bore you with the details about the installation by giving a installation guide. It took me about 40 minutes from scratch (excluding downlOERoad time). The steps are describes in the installation guide Oracle provides. OAC is part of the OER 12c installation jar, but can be licensed and installed, as an own managed domain, without licensing and installing OER.

The steps to take on high level (from scratch):
  1. Download and install Oracle Database, Fusion Middleware Infrastructure 12c, Oracle Enterprise Repository 12c, RCU patch 18791727 and Weblogic patch 18718889 (these last two are important, else you can’t install OAC).
  2. Run RCU (oracle_common/bin/|bat) and create the OAC repository
  3. Run Weblogic Domain creation (weblogic/bin/|bat) and create a new which includes OAC.
  4. After installation and startup of weblogic and managed service you can find the OAC console at url: http://serverhost:8111/oac
Note: if you harvesting from another weblogic server (like SOA Suite 12c), the weblogic patch should also be installed there.

Taking the first steps

When taking my first steps the official getting started guide can help you a lot. OAC has four high-level features. OAC collects services, it has a harvester which creates API assets in OAC. After harvesting you can add metadata to the API assets like description, tags and documentation. After harvesting and editing an API asset it can be published so it is visible for application development. Published APIs can be discovered and used  through the API Catalog console and via the Oracle JDeveloper Oracle Enterprise Repository plug-in.

Logging in for the first time

After installing FMW & OAC 12c and starting the Weblogic server you can login into the provided OAC console (default) running at http://serverhost:8111/oac.

OAC12c: Login to the provided console (admin / weblogic 1)

The default username and password is admin / weblogic1. The first time you are asked to change the password.

OAC12c: First-time login needs password change

After changing the password you will login into the console. The dashboard will be empty because no APIs are harvested yet. But when APIs are harvested they are listed at this page. On this page you can also navigate to “My APIs” which list the API you bookmarked.

OAC12c: Empty dashboard after first-time login

As admin, navigate to “Admin”, you can configure Users and Departments, control Sessions, change System settings and Import/Export the catalog. This blog will go in to the Admin features later on.

OAC12c: Admin page for configuring users, departments, sessions and change system settings

Collecting / harvesting services

The first activity is to harvest APIs into OAC. The harvester is used to populate OAC with API assets from SOA Suite and Service Bus or other deployed services. The harvesting process can be run from the command line or can be integrated into the build process. The latter can be used to automatically do the harvest at build time. Harvested API assets will get a “Draft” state and won’t be visible to developers yet.

For this blog I will use the command line harvester. There are to types of harvesters; one for SOA Suite, OER & File-based assets and one for harvesting OSB. I will use the first harvester and use it with integrated SOA Suite 12c environment.

OAC12c: Harvest assets using command line harvester

For this blog I changed the HarvesterSettings.xml, which is decribed here, and added OAC en SOA server information, including projects to harvest.

OAC12c: Change Harvester Settings in supplied XML configuration

Doing it like this you don’t have to add any parameters to|bat. If you want to harvest a specific asset you can use the command line properties, for example another SOA composite.

The result after running the harvest command should look something like on the image below (in preview mode).

OAC12c: Result of running harvest command (preview mode)

View harvested APIs

After harvesting you first asset(s) you can login the OAC console to see the result. Assets that are harvested will get the “Draft” status, thats why  after logging into the OAC console again, no APIs are published and visible on the dashboard. Search on Service Type = Draft to view newly harvested APIs.

OAC12c: Search on draft for freshly harvested APIs

To see, edit and publish the API asset details click on the specific row. The details page opens which shows information about the asset like Type of Asset, Endpoint, Harvester properties and WSDL summary including namespace, porttype and methods.

OAC12c: API asset details including endpoint and WSDL summary

Besides the details you can perform some actions (from left to right):
OAC12c: API actions
Link, toggle view, bookmark, edit & delete
  • Link to details page: Get URL of API asset details page you currently look at and can share.
    Example: http://soabpm:8111/oac/index.jsp?assetid=50003&renderMinMaxButton=false&renderNextPrevButtons=false
Toggle between tabs and view all: You can view the API asset details in tabs (tab per category) and view them on single page like displayed above.

OAC12c: Tabbed view of API asset details
  • Add to My APIs: Click to bookmark API. After bookmarking API it is visible under MyAPIs page.
  • Edit details: Page to edit API asset details. More about this below.
  • Delete items: Delete the API asset from the repository.

Add metadata to harvested API

To add metadata or edit other details of an API asset click on the edit icon/button to open the Edit Asset page. On this page you can change the name, change the version, add keywords and descriptions, but also add a link to documentation URL and assign/upload an icon. To publish an API change the API status from Draft to Published. It is also possible to set the API active status from Active to Retired.

OAC12c: On the Edit Asset page details like, keyword, description and version can be changed

Publish a draft API

To publish an API you just need to change the API status to published and saving the asset.

OAC12c: Publish-API

On the overview page the API status is changed and the API details can be exported to Excel and PDF.

OAC12c: API status changes when published

When going back to the dashboard the recently published API is visible. When you click on the name of the API asset the user is redirected to the details page.

OAC12c: Dashboard listing recently published APIs

On both the dashboard as on the Asset detail page reviews are mentioned. The admin user can’t perform this action. For this we will create some new users.

Sharing the APIs with other users

After taking the first steps the APIs can be shared with other users. To do so new users can be added with specific roles. As admin user click on the “Admin” menu item and choose the Users section (selected by default). From this page new users can be created, you can search for users and edit & delete users.

OAC12c: Users administration page

Add, search, edit and delete users

To create a new user click in the Users section on the Add User icon on the top-right of the page section. The Create New User page is displayed. The page is divided into three sub sections; user information, roles and departments. The user information section contains form fields for the username, password, real name and email & phone information. It is also possible to force changing the password and allow the password to never expire. A user can have one of four statuses; Active, Inactive, Lockout (after 3 failed logins) and Unapproved.

OAC12c: Create new user - overview section

The roles section gives the opportunity to give the user specific access. The admin role gives you access to harvest, edit & publish API assets and manage application settings liked described in this blog so far. The curator can harvest and edit & publish API assets and the developer can access / search published APIs.

OAC12c: Create new user - roles section

The department section gives the opportunity to add the user to a specific department. Departments is not more then just a filter of which users belong to that department. It is not necessary to add the new user to a department.

OAC12c: Department Details

To see user details and change user information or even delete a user go back to the Users section. To see user details click on the name of the user and you will be navigated to the User Details page. You can also search on department, role and status. The latter can i.g. be used if a user is lockout of there account. To delete a user just checked the box in front of there username and click on the Delete button.

OAC12c: Search, edit or delete Users

The User Details page shows the same sub sections; overview and roles & departments the user is assigned to. The interface is very universal throughout the application. On this page you can also switch to tabbed mode, one tab per sub section, and able to navigate to the edit page, duplicating the user (create new user with same roles and departments) or deleting the user from the repository.

OAC12c: User details and actions

Also create a user, developer1.  with the Developer role.

OAC12c: Developer User

Switching user

To switch to a different user you can sign out of the OAC console by selecting the “Sign Out” options under your user menu. Just click on the arrow on the right side of your name.

OAC12c: Switching User by signing out of OAC console

Logging in as Curator will give the same functions as an Administrator, but without the Admin tasks.

OAC12c: Curator Dashboard

Logging in as Developer will give even less options. A developer can only search in published API and add APIs to there favorites.

OAC12c: Developer Dashboard

Adding an API to My APIs and reviewing the API

Als user you can add APIs to you favorites (My APIs). To add a API to your favorites go to the API asset details page and add the API to My APIs by clicking the “Add this to My APIs” button. After adding it to My APIs the details page is update and shows how many times it is added (usage) in the past 6 months. Users that have added the API to there My APIs can review on the API asset.

OAC12c: Adding API asset to My APIs

When you click on the “View Usage History” link a pop-up is opened which shows a graph with usage over past months and which users uses the API.

OAC12c: API usage history

To view all API that the user had added to My APIs the user van click on the “My APIs”  menu item. The My APIs page shows all the APIs the user has added and gives the user the opportunity to view the details by clicking on the name of the API, to write a review about an API or to delete an API from the list.

OAC12c: My APIs showing all added API and actions to review or delete a API

To write a review about an API click on the first (review) icon on the right side of the APIs name. A pop-up is opened with a form that the user can use to submit a review. The user can give a rating and a comment (max 4000 characters). After submitting the review the page is redirected to the a page which displays all reviews.

OAC12c: Submit a Review and viewing API reviews

OAC12c: Dashboard shows latest reviews

Other administrator tasks

View sessions

The administrator can perform some other tasks that I didn’t discuss yet. On the Sessions section page all (active) sessions are displayed and an administrator can look into the details of the session. An administrator can also delete sessions, which means if a user is active in the console the user will be logged out.

OAC12c: An administrator can view (active) sessions

OAC12c: An administrator can view session details

System settings

An administrator can change a lot of setting to change the behavior of the OAC console. The system settings page is divided into four main sections; Functional settings, Server Settings, Enterprise Authentication and Import and Export settings (not the actual import/export).

The functional settings sections contains settings for search results and printing details via PDF:

OAC12c: Functional Settings - Search results and PDF generation

The server settings section contains settings for embedding HTML in asset details:

OAC12c: Server Settings

The Enterprise Application section contains settings for connection to a LDAP server for user management:

OAC12c: Enterprise Application Settings

The Import/Export sections contains settings for setting timeouts:

OAC12c: Import/Export Settings

Import / export repository

The import / export of the repository can be done in the corresponding section, but instead of it being done in the web UI it uses java Webstart.

OAC12c: Import/Export Tool

My Verdict

To conclude this blog post I will give my verdict about Oracle API Catalog 12c. In the last week I had some ups but also some downs. I started on my windows laptop and installed everything locally. At first everything seemed fine, I could harvest my first Asset, but after trying to view the details I got a error after another. In the days that followed I was helped by Oracle Development and in special by Mark Dutra, but we couldn’t figure out what the problem was. I think it has something to do with security settings and how the laptop is configured (domain wise).

After creating a Linux VM and installed everything again I finally had success and the tables were turned. I really like the interface, it is very clean and uses a common workflow on every page. The use of a separate harvester (command-line or ANT task) is in one way a great solution, because you can use it in your already existing build process, but I missed the option to do this using the OAC console, you don’t always have access to use scripting.
The harvested APIs are added as Draft and an admin or curator can edit the information and publish the API. This version is a great start with lots of information already, like the endpoint, WSDL/WADL summary including methods and message payload. But I miss the possibility to register dependencies between APIs. If API are harvested from one service the separate APIs are not linked to each other.

Adding APIs to your  My APIs and the possibility to write a review can be handy. The simple metrics tell you about the usage and who uses it which is already usefull, hopefully in the future more metrics will be available in OAC.
As an administrator you can perform a lot of tasks using the UI. Adding users, looking at active sessions and import/export the repository. It worked fine on Linux, but on windows I had no result. Also the possibility to connect to an LDAP will make it much easier to add users and departments.
  • Clean and easy UI with common workflow on most pages
  • Harvest through command-line (run-time) or ANT (design-time build)
  • Possibility to edit Assets and add documentation
  • Review on API and give feedback when an API is not working correctly
  • Metrics about usage
  • A great set of administration tools
  • Does not work well with Windows.
  • Catalog features are still basic, no dependency viewer
  • No online harvester, you can’t harvest via the OAC console

1 comment: