| Running the University Application
If you want to see how it works , before u actually read a ton of usecase and history and geography related to various technologies here is the link
if not you can continue reading and going step by step
| High level Business Requirement
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
| Usecase Modelling
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 Oracle Database 11g
let us install Oracle Database 11g R1 on a Linux based Operating system Fedora 17 please follow this link and return back
| Installing RCU and Startup Scripts
Once we have database installed we need to install RCU (Repository creation Utility) to be able to Run SOA, BPM , WC and others in the FMW Family
. This section will also show the nessasary start up procedure , Scripts and various Managed Servers one needs to know, Also this shows how Firewall settings are done so that we can access these servers from outside the hosted machine.
After this section please return back to this main Article
- Enterprise Manager : http://localhost:7001/em
- WLS Console : http://localhost:7001/console
- Content Server : http://localhost:16200/cs/
- BPM Workspace : http://localhost:7001/bpm/workspace
- BPM Composer : http://localhost:7001/bpm/composer
- Oracle Service Bus : http://localhost:7001/sbconsole
- Webcenter : http://localhost:8888/webcenter
- Demo Seed Community : http://localhost:7001/integration/SOADemoCommunity/DemoCommunitySeedServlet
- XE Database : http://localhost:8080/apex
- Inbound Refinery : http://localhost:16250/ibr
- BAM (IE Only on Windows) : http://localhost:9001/OracleBAM
- Activity Graphs : http://localhost:8891/activitygraph-engines/Login.jsp
- Pagelet Producers : http://localhost:8889/pageletadmin/login/loginpage.jspx
- Discussion Forums : http://localhost:8890/owc_discussions/index.jspa
- B2B Console : http://localhost:7001/b2bconsole
- Oracle Identity Manager : http://localhost:14000/oim
- Oracle BI Publisher : http://localhost:7001/xmlpserver/
| Comprehensive Oracle Fusion Middleware Solutions – version 2
let us first Install and configure Webcenter Content (UCM) , Webcenter Portal (Spaces) ,SOA Suite with BPM then Configure alk these to work together , Patch up Process Spaces to Webcenter so that we can view all the Tasks in the Webcenter Portal
follow this link and return back
| Reality Check Post Configurations
lets login to EM and Trigger a sample bpm process , that collects some input parameters and assigns it to a user jstein
lets login to webcenter http://localhost:8888/webcenter as jstein , check his documents and workflow process portal
lets check tasks in the workflow
Now lets Attach a Document to the Task and Approve
lets view the process Dashboard
| Exploring BPM – PART 1
Use case : lets begin doing simple things , A Student submits application form for College admission , the form takes couple of user inputs like student name, his percentage etc, Executes Business Rules and Grants Student Admission
We will use a BPM Task Initiator for student to submit his application, which will be later used for approval by the management, Lets keep business rules out of scope for this current stage
So how do we go about building this
- Create Schema based on use case , ensure that Schema is finalized as its not advisable to change the schema later on
- Create BPM Application Project, Org structure , Roles and Users.
- Create , Business Objects and Process Data Objects
- Wire Data flow using Data Association
- Submit form by filling in Student Data
- View the Enterprise Manager for Process Execution
follow this link below
Use case: Lets set up a simple Business Rule , Student applications having less than 70 % marks will be rejected , and application having greater than equal to 70% will be accepted , and later on Accepted Applications will be reviewed and Approved by the Admin.
follow the below link
Use case: Lets extend the use case where the successfully approved candidates data will be written into DB , those whose applications are rejected would be written into file system . Some of the out of box adapters such as file and database adapter will be used for this purpose
follow this link for File and Database Adapters
Use case: Most often in real life scenario it would not be practical to have tasks initiated from with the BPM Composer using User Task Initiator component , so what we would do is expose the Student Admission BPM Process as a web service , remove the task initiator activity, and using the WSDL we can create Web UI using ADF, Creating ADF Front end is done with in couple of mins as its all about creating web service data control and drag n drop the data control on a ADF jspx page, this would not only tie our ADF front end to BPM process as a service but also exposes this services to any other Processes with in the Organization.
follow this link for BPM Process as Web Service
Use case: Most often in service orchestration services are exposed and consumed as separately bundled flow rather than having one single long service , the advantage of such a system is many other applications can access same service, In SOA BPM we use Mediator to invoke services and also invoke the based on some conditions some times called conditional routing of services.
Use case : So far, we had student admission process where student enters his admission data from the Web UI and based on business rules which defines a cut off percentage , student’s admission is granted or rejected, rejected applications are written into file system as xml files, however accepted applications are sent to Admin officer for approval, later on Approved student data is written into Database .
Now, lets have different service for students who belong to “OBC” reservation category, this new service basically writes into a file system in real life it can be pretty complex where parents annual income is considered and their cut off percentage is reduced etc. we would use mediator to route approved student data into this service.
follow this link for Mediator to set up Conditional Routing
Some times you might want to change business rules on a fly or invoke new service with out actually going deep into JDeveloper , So BPM Composer is an Option, this allows the Process to be Edited , Business rules to be changed , Publish those changes, These changes can be downloaded into JDeveloper for further editing or these changes can be directly deployed on the SOA Server , so that it becomes live.
Use case: Simple scenario, if the cut off percentage in our business rule has changed from 70% to 75% , easiest way to do is go into BPM Composer, Edit the business rule, Publish the changes and deploy. you might not even need to know the details of the complete process or the XMLs working in the background.
follow this link for BPM Business Rules on Runtime using BPM Composer
Use case: In our last chapter we saw how we can use BPM Composer for Run time process editing, lets extend the Application further more to use JMS Messaging.
In real life Admission Scenario. Once a student is Admitted there might be multiple process which might need to take action upon. his admission process would/ can trigger further one or more sub process.
for example A new student joining from SC / ST / OBC reservation category may need to under go “reservation process” where their applications might be submitted to government for Scolorship schemes ( financial aid from the goverment ) .
So lets extend the usecase once student is joined their data is broadcasted using JMS Messaging (Message Producer), there will be another Process which will be listening to these Messages (Message Consumer ), Make a note these processes are not directly connected or wired using wsdl service invocations. but they purely work on JMS message publish and subscribe
follow this link for JSM Adapters
| End to End Flow Usecase Demo
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.
| End to End Process View
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
| End to End Business Activity 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.
| End to End Business Intelligence BI Reports
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.
| Exploring SOA – PART 2
Usecase : High level Requirement : Every Job has a particular minimum and max salary offered , if the min salary for any Job is more than 15000 , then that needs to be approved by the finance officer , these approved Jobs are written in a database table, in case when the salary is less than the specified 15000 then this is simply written into a file system . Technical Requirement : A Mediator Driven Process invokes 2 Services based on the Min salary, if its greater than 15000 , it invokes a particular BPEL process which would insert Job Data into HR Database after approval, if min salary is less than 15000 then mediator invokes another BPEL process that writes the Job data into file system, Yes there can be many other designs including using Rules Engine to decide on salary and routing it to different processes but that’s not considered in this example for simplicity sake.
follow this link Working with SOA Adapters
Usecase : Lets create one more simple BPEL process, which accepts user input based on same schema as the previous BPEL process, the Process would write into a File on /tmp Location every time the process gets executed
follow this link for Simple SOA Business Rules
Usecase: This is the Main BPEL process that wires up the earlier two BPEL process that we developed , Mediator helps is transforming and routing the input request to BPEL process 1 ( that writes into DB Adapter based on Approval) or BPEL process 2 ( that writes to File adapter based on Business rule)
follow this link SOA 11g Mediator
Usecase: Oracle Streams Advanced Queuing (AQ) provides a flexible mechanism for bidirectional, asynchronous communication between participating applications. Advanced queues are an Oracle database feature, and are therefore scalable and reliable. Other features of Oracle database, such as backup and recovery (including any-point-in-time recovery), logging, transactional services, and system management, are also inherited by advanced queues. Multiple queues can also service a single application, partitioning messages in a variety of ways and providing another level of scalability through load balancing.
follow link Oracle Streams Advanced Queuing (AQ)
Introduction to OSB : Oracle Service Bus is a proven, lightweight and scalable SOA integration platform that delivers low-cost, standards-based integration for high-volume, mission critical SOA environments. It is designed to connect, mediate, and manage interactions between heterogeneous services, legacy applications, packaged applications and multiple enterprise service bus (ESB) instances across an enterprise-wide service network. Oracle Service Bus provides built-in management and monitoring capabilities and supports out-of-the-box integration with SOA Governance products.
follow link Exploring OSB 11g
| Running the Application and Download Source Code
Software Downloads at
| About the Author