Comprehensive Solutions

Usecase – business requirements

Business Requirement : James Smith Corp : has an Education Division that allows students to apply online for their university courses, students are given academic seats on various reservation category as per the government rules, the fees structure also varies based on some of the student parameters like reservation category, parents income etc. Students also pay the fees online through net banking , access online portal through their mobile devices or desktop machines,

Applications go through series of review from admin officer to finance officer and finally checked by the principal himself.

the system has tie ups with various Business Partners for providing books and id cards to new  Joinee students as soon as they come onboard to the university.

Management also keeps track of various reports that helps them plan next year cut off percentages and revenue generated from various category of students. also lets them open up fresh admissions in-case they have some vacant seats available to be filled up

technnology focus

Technical Requirements: James Smith Corp already have technical expertise around Oracle SOA BPM products, they plan to use following

  • Oracle Database,
  • Oracle SOA layer for Application Integration ,
  • Oracle BPM for Business Process Orchestration,
  • Rules Engine
  • Webcenter Portal
  • Enterprise Content Management
  • ADF for Mobile and Portal Development

end to end demonstration of usecase

Step 1 : Student (Jcooper) Uses his mobile phone to access James Smith Inc website and to apply online

Step 2 : The Application is validated against application business rules, if accepted the documents are manually checked and approved by the Admin Officer Jstein , who logs into webcenter Spaces and checks his task notifications

Step 3 : Once Admin has approved, Student Fees is collected through Net Banking , which actually means the fees amount is transferred from student account to university account, on valid transaction, the finance officer cdoyle needs to approve the student data to next level.

Step 4: Principal wfaulk does a final application review , if approved the system registers the student, student is informed about successful application acceptance, University partners are informed to get the badges done and also procure student books.

Also Principal can also view various reports that help him set up cut off percentages and future development plans.

hardware and load test on ram

I am using one of the best possible Hardware i could have afforded AMD 6 core processor, with 12 GB RAM on ASUS Motherboard, Linux based Ubuntu 11.10 Operating System. Yes at full throttle you might need all that RAM and Core , see for yourself.

Under Production Environment you would be recommended to check the latest Hardware Offerings from Oracle

My Development Environment

All Softwares Running are latest patchset PS4, extension software_11.1.1.5.0_extension

Sun JDK 1.6.0_30 Installed

  1. Running XE Database + Admin Server (SOA+BPM+OSB+EM) = 3.1 GB RAM
  2. Adding BAM (bam_server1) Managed Server = 4 GB RAM
  3. Adding UCM (UCM_server1) Managed Server = 5.2 GB RAM
  4. Adding Webcenter Spaces (WC_Spaces) Managed Server = 6.5 GB RAM
  5. Adding WC_Utilities Managed Server = 7.2 GB RAM
  6. Adding WC_Portlet Managed Server = 8.5 GB RAM
  7. Adding WC_Collaboration Managed Server = 9.5 GB RAM
  8. Adding IBR_server1 Inbound Refinery Managed Server = 10.6 GB RAM
  9. JDeveloper 11.1.1.5.0 SOA + Webcenter Extensions added = 11.0 GB RAM
  10. I still need a Windows VM to fireup Internet Explorer as BAM works only on that IE .

Anyway Ideally you would not run all the servers on same machine, and JDeveloper aswell on same Box, you would stick to Original client server architecture. may be even have database on some other physical machine.

softwares to download

Download Link :http://www.oracle.com/technetwork/indexes/downloads/index.html

My Current Generic Downloads installed on Linux based Ubuntu 11.10 OS

  1. Oracle XE Database oracle-xe-universal_10.2.0.1-1.0_i386.deb
  2. Sun JDK jdk-6u30-linux-x64.bin
  3. JDeveloper jdevstudio11115install.jar
  4. JDeveloper BPM Extensions bpm-jdev-extension.zip
  5. JDeveloper SOA Extensions soa-jdev-extension.zip
  6. Webcenter Customization oracle.webcenter.customization_bundle.zip
  7. Webcenter Framework oracle.webcenter.framework_bundle.zip
  8. RCU Linux ofm_rcu_linux_11.1.1.5.0_disk1_1of1.zip
  9. ECM ofm_ecm_generic_11.1.1.5.0_disk1_1of2.zip and 2of2.zip
  10. Webcenter ofm_wc_generic_11.1.1.5.0_disk1_1of1.zip
  11. SOA Generic ofm_soa_generic_11.1.1.5.0_disk1_2of2.zip and 2of2
  12. BPM Process Spaces processportal_installer_bpmps4fp.zip
  13. Oracle Service Bus ofm_osb_generic_11.1.1.5.0_disk1_1of1.zip
  14. Weblogic Server wls1035_generic.jar
I would not be really writing anything about How to Install these softwares or how you can start these services as there are standard Installation Guides , How ever i would like to give some Installation related tips and pointers that would help you.
  1. Install JDK ( I use Sun JDK )
  2. Install Oracle XE Database ( refer my Blog on How to Install XE on Ubuntu )
  3. setup JAVA_HOME and RCU_JDBC_TRIM_BLOCKS=TRUE
  4. root@james:/home/james# gedit ~/.bashrc
  5. On Oracle XE database set the below mentioned processes and restart XE DB
  6. alter system set processes=400 scope=spfile;
  7. sudo /etc/init.d/oracle-xe restart
  8. Install RCU select SOA, Webcenter, Portal, UCM during Installation.
  9. Install Weblogic Server let it create Middleware home
  10. Install SOA Suite as a part of Admin Server
  11. BAM would be a Managed Server taking different port.
  12. Install Oracle Service Bus
  13. Install ECM that consists of UCM and IBR Managed Servers
  14. Install Webcenter
if all installations are done this is how your middleware directory would look like

ORACLE FUSION MIDDLEWARE LINKS to BOOKMARK

  1. Enterprise Manager : http://localhost:7001/em
  2. WLS Console : http://localhost:7001/console
  3. Content Server : http://localhost:16200/cs/
  4. BPM Workspace : http://localhost:7001/bpm/workspace
  5. BPM Composer : http://localhost:7001/bpm/composer
  6. Oracle Service Bus : http://localhost:7001/sbconsole
  7. Webcenter : http://localhost:8888/webcenter
  8. Demo Seed Community : http://localhost:7001/integration/SOADemoCommunity/DemoCommunitySeedServlet
  9. XE Database : http://localhost:8080/apex
  10. Inbound Refinery : http://localhost:16250/ibr
  11. BAM (IE Only on Windows) : http://localhost:9001/OracleBAM
  12. Activity Graphs : http://localhost:8891/activitygraph-engines/Login.jsp
  13. Pagelet Producers : http://localhost:8889/pageletadmin/login/loginpage.jspx
  14. Discussion Forums : http://localhost:8890/owc_discussions/index.jspa
  15. B2B Console : http://localhost:7001/b2bconsole
  16. Oracle Identity Manager : http://localhost:14000/oim
  17. Oracle BI Publisher : http://localhost:7001/xmlpserver/
I plan to write on Oracle Identity Manager,  Oracle Access Manager and Business Intelligence at later stage

database configurations

DATABASE Adapter Configurations : I assume that with the schema available in the source you have already created University Database, lets make it talk with Weblogic Server,  login to WLS Console, go to Data sources, create Generic Datasource by Name UniversityDS JNDI Name jdbc/UniversityDS

Under Configuration -> Connection Pool tab, give required parameters and Test for DB Connection

go to Deployments , Under DB Adapter create a new Outbound connection Pool , this comes under Configuration -> Outbound connection pools, this name should match the one thats defined in SOA Database Connection eis/DB/University

set xADataSourceName to jdbc/UniversityDS our pre-configured JNDI Name

Update the Database DBAdapter Deployment, No need to restart, Most often people forget this step.

BAM  Adapter Configurations: Go to Oracle BAM Adapter, ensure that eis/bam/soap outbound connection is defined

check the ports, if changed update BAM Adapter deployment

integrating webcenter with UCM

For PS5 Webcenter and UCM Integration Click here 

RESULT

setting up bpm process spaces on webcenter

 For Webcenter and BPM Process Spaces Integration PS5 click here 

RESULT

setting up bam with bpm process

Login to EM, Edit BPMNConfig.bpm , Disable Action = blank, see the below figure as to how to Navigate to BPMN Config MBeans

Edit  BAMICommandConfig.xml

:~/Oracle/Middleware/Oracle_SOA1/bam/config$ gedit BAMICommandConfig.xml

Add

<ICommand_Default_User_Name>weblogic</ICommand_Default_User_Name><ICommand_Default_Password>welcome1</ICommand_Default_Password>

just above

</BAMICommand>

Save the file. Next Run Monitoring Express Sample Scripts, these creates out of box available BPM Reports on BAM Dashboard

james@james:~/Oracle/Middleware/Oracle_SOA1/bam/samples/bam/monitorexpress/bin$ ./setup.sh

RESULT : Login to BAM, You can see out of Box BPM based BAM reports

I need to fireup windows VM to load IE , which i really dont like doing as i am already running couple of Servers and this adds overhead to the memory. I tried Installing IETabs and Different IE versions like IE for Linux on Ubuntu and run them on WIne, Unfortunately none of those IE things ever worked on Linux. I would be looking forward to a day when i can run BAM reports on my Linux Machine with the same level of performance that BAM offers as of today.

Admission sequence flow & usecase

I would not be explaining this sequence in detail , but this is the flow of events across various actors ( systems and subsystems ) . this can be done using JDeveloper

Student Applies and Pays fees online, If Application found valid meeting the required criteria, admin reviews the application, if Admin finds the application correct and valid, the fees is collected by Net Banking transferring fees amount from the student account to University account, Finance Officer and Principal do the final review, If everyone clears the student gets admitted into University system, the system also informs the student about the admission status as well as gets connected with partners to procure Books and Id cards to on-boarding student

setting up net banking – soa process

throughout this blog section we will use a university schema as shown below. that captures basic student information along with the fees money that he needs to pay to the university on successful selection, student enters his own bank name, account number and pin. In reality these details would not be handled by any university but through a payment gateway.

the system checks if the student has enough funds in his bank account to pay the fees, if found true, then a handshake is established between student account and the university account, fees money is debited from student account and credited into university bank account, we are simulating this using database table, for the sake of simplicity its assumed that HDFC bank is used Account Number 12345678 and Passcode 1234, other values will fail transaction.

the corresponding BPEL process is here, and its a part of source code download available on this blog

RESULT : Fees Amount Collected from the student is Debited from Student Account and  is transferred into University Bank Account, if the transfer gets rejected the student application is also rejected and is not processed for further approvals.

setting up admission rules – rules engine

Rules Engine has a beautiful concept of decision tables, where various criterias can be applied to accept a student application or reject as a first level screening, we will use decision table to allocate seats to students based on their percentage and reservation category as per the govt rules.

We will use Bucketsets to decide on ranges of percentage for example students scoring marks above 80% are considered as Distinction students, First Class, Second class etc, also there are various reservation groups such as OBC, GEN , SC/ST and each of those students are allocated seats based on their percentages and parents annual income.

BPM also provides out of Box Option through BPM Composer to Edit these Rules without further deploying the whole application ,

Refer this link on runtime edit through BPM Composer

http://jamessmith73.wordpress.com/oracle-soa-bpm-11g/bpm-composer-runtime-edit/

RESULT : We have set up Rules Engine Decision table to accept or deny student admission to college based on reservation category and his/her percentage

setting up partner network – osb

Student ID card makers are a Simple SOA Service , as of now once the registration is complete BPM invokes this SOA service, through a OSB layer , the implementation of this service is pretty simple , it writes into a File System, but this Service can be enhanced to include B2B Option or any other complex logic based on the real partner to partner integration needs at Enterprise level.

lets deploy this on Weblogic Server, lets consume this service with in OSB , first as a Business Service, and then add a wrapper on top of it as Proxy Service,

We will use the Proxy Service from our University Application, to show OSB integration with BPM through SOA Layer.

Also you can avoid SOA layer and directly call OSB Service through BPM using Direct Binding

setting up bpm process orchestration

Setting Organization Roles, Based on our Use-case diagram We have identified 4 major roles as per the usecase jcooper as Student, jstein as Admin Officer who views the application after initial screening, cdoyle as Finance officer who verifies that finance has been settled by the student through Bank payment using Net Banking, wfaulk as Principal who does final level approval. All these student details are stored in Weblogic LDAP, You can also setup Organization based Holidays and Calendar.  All these are to be  Configured in our University Admission BPM Process

Swim-lane : Student Role + Admin Officer -> Starts by receiving input format Request through a Message , this input can be from Any User Interface device such as Desktop Browser or a Mobile Application hooked into James Smith University website. certain business rules are executed to determine if the student can be given seat or not, based on lot of factors such as Parents Income, Reservation Category of student, Student Percentage etc

One Application is accepted, the attached documents are physically checked by the Admin Officer, if  admin officer Approves then the fees is collected by the student through a Simulated Net Banking Process, that Debits from Student Account and Credits into University Account.

If all goes well it goes to next level or next role , but if it gets rejected the process stops,

Enhancements : This can be further enhaced to send a Notification SMS or Email Message to the student about the rejection , and also refund the collected Fees

Swim-lane : Finance Officer Role + Principal Role -> Once Bank transaction is successfully completed, Finance Officer reviews the Student Application, If its approved, the application moves to next level thats Principals Review, if Principal also reviews, The student is actually admitted into the system by writing in the university student database, the Partners are informed about new student joining , his ID cards and Books are Procured.

Enhancements : This can be further enhaced to send a Notification SMS or Email  Message to the student about the Candidate acceptance, but also interface with Oracle B2B or use E-Business Suite Iprocurement to automate procurement to the student.

During Process Execution in Enterprise Manager

bam monitoring

Business Indicators are primarly of 2 types string and integers, these are also sometimes referred as Measurements and Dimensions, these are pushed to BAM Data Objects, during process execution the data is fed in real time to BAM Data Object, and the Dashboard Reports reflect real time data. also please make a Note that these BAM data objects are automatically created during process deployment and should NOT be manually created.

Select Enable BAM to create Data Object in a Specific Folder inside BAM

The Data is actually Pushed into BAM from BPM by using Script Activity from BPM View in the Process.

BPM FEATURE PACK – UPDATES !

Feature Pack has fixed some BPM related Bugs and Added New Features to BPM Composer and Workspace, One major observation is earlier attachements were not getting saved in BPM Task lists detail page, now after applying patch the attachments and comments are getting saved, and also some reports Standard Dashboard are Visible earlier (Before Patching Feature Pack) they were not .

Please read the readme.txt that comes along with the download to Install this Feature Pack

WARNING : Most often before  applying ANY Patch please take backups and test the whole patching process on a non production system  with similar hardware and software configurations as the production system, read documentation carefully follow all steps, only when things go right apply it on a production system, else there can be very serious consequences.

 RESULT: After all the patching work Attachments and Comments would be working fine, I would not be explaining all the new features of BPM Feature Pack, please look into official documentation.

business intelligence – reporting & service invocation

This is a huge topic in itself, Oracle BI helps Analyse data from discrete data sources, even work on Historical and Multi-Dimensional data, BI Publisher helps creating reports based on data analysed, while BAM is a good candidate for real time reporting BI is an excellent technology for Analyzing some of complex data from multiple data sources like various databases, xml files, flat files, LDAP directory, etc.

Use-case: We will be demonstrating how student reports and student welcome letter post admission will be generated using BI Publisher. we will be using Oracle BI OBIEE to analyse student data and decide on cut off percentage through  BI Agents Web-service invocation functionality. since this is a huge topic its covered in a different link below.

http://jamessmith73.wordpress.com/oracle-fusion-middleware/business-intelligence/

Identity and Access Management

We would be using Oracle Identity Management for Organization Hierarchy creation, Role creation, user creation and user access policy management. this would help James Smith University’s Administrative and Management staff to be in local LDAP directory and allows self service in terms of registration and managing their user profile. this topic is discussed in depth here.

http://jamessmith73.wordpress.com/oracle-fusion-middleware/oracle-access-and-identity-mangement/

download source codes – THANK YOU !

Click here to Download PS4 version of the above source code

Software Downloads at

http://www.oracle.com/technetwork/indexes/downloads/index.html#middleware

AUTHOR PROFILE

 Click here to view Author Profile

One thought on “Comprehensive Solutions

  1. Remember when you write SQL Query based DB Adapters , the syntax is similar to below query

    select studentname, rescategory, status from students where studentind = #studentidvar

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s