Tuesday, September 29, 2015

OER Harvesting

Oracle Enterprise Repository (OER) provides governance support for the SOA as well as BPM based services It provides you management of composites, services, business processes. Oracle Enterprise Repository acts as the central source of SOA information, allowing you to find planned, existing and retired services.

Usually in large organizations, where SOA is practiced there will be growing aritfacts, if not checked can lead to failure of SOA based architecture. Keeping this in mind Oracle provides you with Oracle Enterprise Repository that provides an repository for service producers, providers, and consumers who enhance applications or deliver new service capabilities.

Oracle Enterprise Repository provides role-based links to asset artifact stores and links to design documents, justification documents, test plans, support plans, policies, and so on. Approvers in the life cycle process can reference and upload documentary evidence to support their approvals, and consumers can reference information to support their service choices.


Which services are using my API?
Why was this API designed?
Who approved the API
Where can i find API directory?

The above are some of the questions which OER answers.


OER Harvester.

The tool used to upload assets or artifacts in OER is called Harvestor. Harvesting in OER can either be done manually or automatically.

To harvest a full BPM project, execute the below command

./harvest.sh -remote_url http://nas.oracle.com:7003 -producing_project TelecomPrj -remote_username weblogic -remote_server_type SOASuite -soa_partition default -registration_status Registered -remote_project ModifyOrderPrj_rev1.0

The tool automatically reads all the standard artifacts from the project and harvests in the OER.

-registration_status Registered will cause the artifacts to registered automatically.

 Omission of this flag will require you to manually register, accept & approve the OER. Its only after the registration you can consume these projects from JDeveloper.

-producing_project TelecomPrj will cause all the artifacts to be produced under this project within OER.

Output
weblogic -remote_server_type SOASuite -soa_partition default -registration_status Registered -remote_project ModifyOrderPrj_rev1.0
NOTE: To harvest Oracle Service Bus 10 projects, please use osb10harvest.sh
0    [main] WARN  com.oracle.oer.sync.framework.impl.DefaultPluginManager  - unable to initialize harvester plugin file: /u01/fmw/soacd/oer/tools/harvester/./plugins/soasuite11g.remotereader
511  [main] WARN  com.oracle.oer.sync.framework.impl.DefaultPluginManager  - unable to initialize harvester plugin file: /u01/fmw/soacd/oer/tools/harvester/./plugins/mds.starter
Connecting to: service:jmx:t3://nacepcsoa15.oracle.com:7003/jndi/weblogic.management.mbeanservers.runtime
2761 [main] WARN  com.oracle.oer.sync.framework.impl.DefaultPluginManager  - unable to initialize harvester plugin: /u01/fmw/soacd/oer/tools/harvester/./plugins/osb10.productreader
2954 [main] INFO  com.oracle.oer.sync.framework.MetadataManager  - oracle enterprise_repository_harvester version: v12.1.3.0.0-140924_1129-1627717
3398 [main] WARN  com.oracle.oer.sync.framework.impl.DefaultPluginManager  - unable to initialize harvester plugin file: /u01/fmw/soacd/oer/tools/harvester/./plugins/soasuite11g.remotereader
3678 [main] WARN  com.oracle.oer.sync.framework.impl.DefaultPluginManager  - unable to initialize harvester plugin file: /u01/fmw/soacd/oer/tools/harvester/./plugins/mds.starter
4008 [main] WARN  com.oracle.oer.sync.framework.impl.DefaultPluginManager  - unable to initialize harvester plugin: /u01/fmw/soacd/oer/tools/harvester/./plugins/osb10.productreader
8725 [main] INFO  com.oracle.oer.sync12c.plugin.artifact.composite12c.CompositeIntrospector  - the composite ModifyOrderPrj 1.0 is being harvested.


Once the project has been artifact, logon to OER console, usually the url would be like http://localhost:8111/oer









Thursday, September 24, 2015

Dockers

Have you ever been in a situation, where you are building applications that depend on certain version of software. For instance you are having certain app, which depends on JDK 1.4 and some app which depends on JDK 1.8 or say even different version of database. There are couple of ways to deal with this

1. Install all softwares and dependencies on single machine.
2. Use of Virtualization like Oracle Virtualbox.
3. Use of Containers .i.e. Dockers.

What are Dockers?

Docker is a container management system, that virtualizes application environment or Docker allows you to package an application with all of its dependencies into a standardized unit for software development.

What is the difference between Dockers & traditional virtualisation?



If you see the above diagram, the way VM is assembled, you require a  Host operation system, a hypervisor (Type 2), on top of that you will create multiple virtual machines, each having its own operating system and then each machine can be configured as per the requirement, which sounds like an over kill for just running applications having different dependencies.

Compare this to Containers, you require an Operating system and then you can have multiple isolated containers  to virtualise.


How do Dockers Work?
There are 3 main components of Dockers
1. Docker File -> These are scripts to build your environment. Think of this like a recipe where you mention all the required components, all libs, all jars. This is a blue print of your environment

2. Images ->  These docker files are compiled into an image just like an .iso.

3. Containers -> From the images, you can create copies of the images to create the containers.

There is also something called Docker hub, which is worth mentioning. Docker hub is a repository of images. Users of dockers either have the choice to create their own image or download an pre-built image which others in the community can contribute.

Summary

Dockers is really a cool technology when we think about virtualisation.  There are lot of Pros in using dockers like

1. Efficiency
2. Less OS Management
3. Fast Deployment
4. Lightweight.

At the same time, there are cons in using dockers like

1. Its still immature compared to VMs
2. Security is still a problem
3. You cannot migrate live workloads

Dockers or containers solve application portability problems, but will it challenge traditional virtualisation, it is something to see and wait for!!.




Friday, September 4, 2015

Using CloudBerry for creating containers in the Oracle Storage Cloud Service

One of the pre-requisite of creating an Java Cloud Service instance or DB Cloud service instance is  container.



A container is a storage compartment that provides a way to organize the data stored in Oracle Storage Cloud Service.

Any user with the Service Administrator role can create containers. You should create
at least one container for Java Cloud Service or DB Cloud Service. . Containers are similar to a directory structure but with a key distinction: unlike directories, containers cannot be nested. By default, all containers are standard

 Note: An Oracle Storage Cloud Service account is not required if you are creating Oracle Java Cloud Service—Virtual Image instances only

There are essentially 2 ways of creating containers

1. Rest Based Web services, which is based on Open Stack Swift standard
2. Java based API.

The focus of this tutorial is using Rest Based API.

The Rest based API too can either be invoked using CURL commands or using 3rd party tools like Cloud Berry.

Note: We can use any tool that supports Open Stack Swift Standard.

What you Need?

1. Oracle Public Cloud Account
2. Cloud Berry


Steps to create container using Cloud Berry
  1. The first step is to install the cloud berry on your machine.
  2. Click File -> Open Stack


  1. From the OpenStack tab - click Add






  1. Give the below values in the form 
    a.      Display Name: Any name of your choice
    b.     UserName: Storage-identityDomain:OracleCloudUser Name. For example if your oracle cloud identity domain is USORACLE012 & UserName is Tom@or.com, the username to be used will be Storage-USORACLE01:Tom@or.com 
    c.      API Key: Oracle Cloud Username & Password
    d.     Authentication Service: This value should be of the following https://identityDomainName.storage.oraclecloud.com/auth/v1.0 For example
    https://USORACLE012.storage.oraclecloud.com/auth/v1.0

    or

     it can be of following format - https://dataCenterCode.storage.oraclecloud.com/auth/v1.0, for example, if our data center is em2, 
    https://em2.storage/oraclecloud.com/auth/v1.0

     
    e.      Make sure you uncheck “Use Key Stone Authentication”

Note: The Authentication service URL in early releases of Oracle Storage Cloud Service was this https://storage.dataCenterCode.oraclecloud.com/auth/v1.0



After giving the above values, click on Test Connection



To create new container


1.     Go to the main screen of Cloud Berry.


2.     Click on the connection you created from the source. This will make a connection to your oracle cloud storage.


3.     Click Create New Container & give the container name & hit Ok.


That's all, you can use the above container for creating your Database or Java Cloud Service account.