Sunday, October 28, 2018

[IT-001] Enterprise SOA implementation using Oracle SOA for IT Idiots (Part-2)

[IT-001] Enterprise SOA implementation using Oracle SOA for IT Idiots (Part-2)
----
Last updated: 29 Oct 2018 05:16

Background:

There are so many SOA terminologies, concepts and for an fellow IT idiots, it's a nightmare... It's better to see SOA in action, not just in bits-n-pieces... But, a end-to-end 'Hello World!'


Demo application to explore Oracle SOA concept , else try to catch crow in dark!


** User Story **

(a) Say 'Hello World!', when i enter 'World' in to Text Box of Google Chrome Browser & click 'Say Hello'

** Great planning by an IT idiot :) **

There i believe, total of four stages to achieve 'Hello World!' in SOA 

(a) Service Provider : sayHello() in POJO/ Plain old Java coding. After all, this is the only one, we learnt in school!

(b) Business Service 
(c) Proxy Service
(d) Service Consumer


** Demo SIMHA Hello World, Step-by-Step **
1.0.0: Create Endpoint (Service Provider) 
1.1.0: Create Desktop Application in JDeveloper 
1.2.0: Create ? Project 
1.3.0: Create sayHello() as POJO 
1.4.0: Create REST Service from POJO 

2.0.0: Create Business Service 
2.1.0: Create Resources from Endpoint URI & XSD 

3.0.0: Create Proxy Service 

4.0.0: Create Web App? (Service Consumer)
4.1.0: Create Data Control 
4.2.0: Create Text Box & Command 
4.3.0: Enter 'World' & Display 'Hello World!' 

** Reference YouTube/ Links Analysis **

(a) Create 'Service Provider'
# Reference YouTube: Create Simple Web Service Using Oracle JDeveloper  
- Create Application type -> 'Java Desktop Application' project in JDeveloper
- Create Project type -> 'Java Class'
- Create Web Service -> By right-click on 'Countries.java'
# Outcome 
- URI: http://127.0.0.1:7101/Client/CountriesPort
- WSDL URL :  http://127.0.0.1:7101/Client/CountriesPort?WSDL
- Operations : CountriesPort.getCountries()
- XSD : ??? 

(b) Create 'Business Service'

# Reference YouTube: Oracle SOA Suite 12c: REST Enabling SOA
-

# Outcome

-

(c) Create 'Service Consumer'

# Reference YouTube: Consume Web Service With JDeveloper ADF
- Create Application type -> 'Fusion Web Application (ADF)
- Create Data Controls type -> 'Web Service Data Control' to connect with Endpoint
- Create Categories->Web Tier->JSF/Facelets->'ADF Task Flow' to create Web Page
-- Add page fragments of viewAllCountries, addCountry, selectCountry & include Control Flow
-- "... from this point onward, this example goes above my head... abort!'

#


# Outcome

-

References
[01] Enterprise Service Bus, Jul 2013, Oracle Technology Network, 02-00-article-on-oracle-enterprise-service-bus-jul2013.pdf

[02] Create Service Provider, 22 Mar 2013, YouTube, 01-01-service-provider-create-simple-web-service-20181029.mp4  

[03] Create Business Service/ Process Pipeline/ Proxy Service on Service Bus, 26 Jun 2014, YouTube, 01-02-service-bus-create-business-service-n-proxy-server-oracle-soa-20181029.mp4


[04] Create Service Consumer, Vinay Agarwal, 27 Mar 2013, YouTube, 01-03-service-consumer-create-web-app-adf-20181029.mp4  




Saturday, October 27, 2018

[IT-001] Enterprise SOA implementation using Oracle SOA for IT Idiots (Part-1)

[IT-001] Enterprise SOA implementation using Oracle SOA for IT Idiots (Part-1)
----
Last updated: 28 Oct 2018 16:49

Background:

1. As a large enterprise organisation with near zero maturity in IT process, we tend to deploy multiple software applications in all possible haphazard way one can imagine. PHP/ ASP.NET C#/ ASP.NET VB/ JSP/ Java... even FoxPro 2.5. Database too in flavors from Oracle to SQLite. All leading to creating a monster of IT system beyond control of sizable novice in-house IT support system.

2. A simple thought has born, WHY CAN'T WE USE ONE DEVELOPMENT ENVIRONMENT, AND YET OPEN FOR INTEGRATION WITH MULTIPLE HETEROGENEOUS SYSTEMS? Thus, thought of opt for 'Service Oriented Architecture'

Architecture of an IT idiot!

2. Overall architecture thought to have following core layers.
(a) Enterprise Portal : Oracle HTTP Server + Oracle Web Center Portal
(b) Enterprise Service Bus: Oracle Service Bus/ Oracle SOA Suite of products
(c) Enterprise Application Server: Oracle WebLogic Server
(d) Enterprise Database: Oracle Database Server

3. Platform of Portal, Service Bus, AS & Database duly enhanced using following products.
(a) Identity & Access Management: Oracle IdAM
(b) DMS/ RMS/ DAM: Oracle Web Center Content
(c) Business Process Management: Oracle BPM

Proof-of-Concept Tests
4. Apart from theory of presentation layer, integration layer, business layer, database layer, it is always essential to test the entire deployment of myriad of Oracle long list of products. Hence, intended to test following.
(a) Write a simple POJO getEmployeeNameById() and expose it as RESTful API aka Endpoint aka Business Service (BS)
(b) Publish API Endpoint to Service Bus aka Process Pipeline (PP)
(c) Create Proxy Service (PS) to expose API to outside world
(d) Connect with Proxy Service through Demo browser based application 'HR Query' :)

Google God, who else there to help us, the IT idiot breed ;)
(a) How to write Business Service (BS)
Create Simple Web Service Using Oracle JDeveloper 11.1.2

(b) How to connect BS to SOA Server
Consume Web Service With JDeveloper ADF

(c) How to write Proxy Service (PS)
REST Enabling SOA

(d) SOA Hello World!
Oracle Service Bus 12c Hello World

(e) Create Business Service from Service Provider and expose as Proxy Service
Provisioning a Service in Oracle Service Bus

(f) How to write browser based client demo app

Journey
(a) .... is on :). Shall update with more on the way


Glossary aka headache creators

01-00: Business Service -> Created within Service Bus from usually Endpoint URI
01-01: Service Provider/ Endpoint -> Service Provider in REST/SOAP API. Usually connected using WSDL URI + XSD files
01-02: Proxy Service -> Created from Business Service. Multiple Proxy Service could be created depend upon requirement. Usually to serve REST clients & SOAP clients separately
01-03: Service Consumer -> Client who consumes REST/SOAP Services from Proxy Service of Service Bus

02-00: WSDL ->
02-01 XSD ->
02-02: REST
02-03: SOAP ->
02-04: UDDI ->



Saturday, July 7, 2018

[IT-010] Demo deployment of Oracle Database 12C for Skill Testing! (Ver.1.0)

ScenarioWe intend to hire an Oracle DBA and has worked out a test sequence to test skillset of DBA candidates. High-level test sequence as following.

Test Objectives:
(a) Test Oracle DBA candidates basic skillsets
(b) Should able to know how to prepare VM, deploy RH Linux, deploy Oracle Database, Create golden image of Linux VM, RMAN backup, disaster recovery of database

Target readers: People intend to hire Oracle DBA, Oracle DBA appearing for interviews, People interested to learn basics of Oracle DBA

Version History:
1.0: Initial version published on 08 Jul 2018

*** Test sequence for Oracle DBA ***
1.0: Installation of Oracle (VM-1)
1.1: Install Linux on VM
1.2: Install Oracle Database
1.3: Install Oracle Sample HR database
1.4: Setup RMAN
1.5: Setup Data Guard 
1.6: Backup using RMAN
1.7: Initiate Data Guard replication 
1.8: Shutdown Oracle database 

2.0: RMAN based recovery  (VM-2)
2.1: Restore golden image of Linux from VM
2.2. Install Oracle Database
2.3. Restore Oracle database from RMAN backup files
2.4. Live restored Oracle database

3.0: Data Guard based recovery  (VM-3)
3.1: Restore golden image of Linux from VM
3.2. Install Oracle Database
3.3. Restore Oracle database from replicated Data Guard files

Monday, June 11, 2018

[IT-009] Software Development Team for Dummies

1.0: The problem statement
Almost all outsourced software projects are invariably getting either delayed or come out in less than expected quality.

Few of the reasons, as I felt for such Govt organisation characteristics are difficulties in getting right vendor, inadequate vendor skillset, lack of practicing of software engineering best practices, lack of transparency on software development, inadequate user requirement gathering... list goes on and on.

So, felt urgent need to resolve this issue and most importantly sustain the fix as an institutional mechanism.

2.0: The Solution...  That's what I call it
Setup a in-house Software Development Team, of course to develop software and in addition to oversee outsourced developments.

3.0: The journey
Without an iota of experience on how professional software team works, we started our own adventure. Let's bring the fundamentals.

3.1: Software Development Team composition
(a) Business Analyst (BA)
- Speak the language of Users and deliver 'Use Cases'

(b)