My Detour (Oracle VM)

December 3, 2009 - Leave a Response

OK so it looks like I wasnt blogging for a few weeks- vacation what can I say.  But over the last few days I have been playing with some of the infastructure tools that oracle has created (read purchased) and how they will fit in this new world.

So in the current data center world we usually have some big IBM or SUN boxes with multi LPAR setups where one LPAR may be Our web servers.  Another LPAR for Our App servers and another for our DB servers.  And we will probably have more than one box in this config.  In an x86 shop you might have actual boxes for each tier.  Thats all nice and dandy if nothing changes over time.  But as we know at client sites we need new instances for special projects all the time, and usually QA gets taken over for something special.  The other down side is everything is pre allocated as in we have our lpars for dev and test and prod.  If tomorrow we are doing open enrollment and we need more horsepower its going to be difficult to bring on another app server.  So we turn to virtualization to get past this.  The big boy  in the field was VM Ware with its ESX server.  For you developer types- thats what CMS uses for certain applications.  There were also some open source ones like XEN.

So Oracle took the XEN sourcecode and enhanced it to create OVM.  OVM is closer to the functionality of VMwares ESX.  So oracle is shooting for a VM Data Center strategy.  This will allow us to create new instances on the fly.  Infact Oracle has created templates (VMs) for exiting products including Peoplesoft.  So say you have a spare OVM box sitting there and you want to install PS, all you have to do is download the template and tell the server to boot that vm.

Ok so they just copied VM Ware right?  Well not exactly.  There are a few other things going on.  First lets talk about the configuration of a VM data center according to oracle.  You would have one server that would be the Master.  It would determine what runs on the slave servers and it would also have the web interface for controlling and deploying the VMs.  The slave are just boxes.  A group of slaves would be a server pool.  You could add to the pool by just adding more boxes, and also, say a server dies, you could just remove it from the pool with no impact to your application.  Imagine servers that are like RAID disks.  If one fails who cares.  And as a raid disk, we dont care where our data gets stored from a physical perspective, same with the data processesing on a cloud.  In fact oracles vision for the data center is a cloud.

And now for the kickers- the OVM Manager (the master box) has all of its functions exposed as web services.  So imagine us being in open enrollment, the system via Business Activity Manager (BAM) can see a bunch of processes running that are taxing the app and web servers.  It kicks off a web service call to bring up two new instances of Web and App servers to handle the load.  All with no human intervention.   We basically end up with the self healing/tuning systems that were discussed as theories in Information Systems classrooms during the last decade.

This also folds nicely into oracles plan to own the IT world.  How so you ask- lets look at oracles purchases over the years and how it fits within the stack.

So what consists of a PS Stack

  • Server Hardware
  • Operating System
  • Database
  • Application Server
  • Web Server
  • Application

So Oracle started as a DB company and so we have the flagship Oracle DB.  Then it purchased PeopleSoft and gained the Application.  Next it got a  licence from red hat to rebrand and redistribute its OS- yes Oracle has its own Linux.  Then it purchased BEA and gained control of Tuxedo and Web Logic.  Oracle already had its own web server OAS- but its now dead.  Well that leave hardware.  And unless you have been living under a rock you should know that Oracle purchased Sun.  So they have that too.  So why is this so important.  Well its the argument of State Machines vs Stateless Machines.  In layman terms its Mac VS PC.  With oracle controlling the entire system it can streamline it and get it to work better.  Infact Oracle with the addition of OVM to this stack could sell pre configured data centers to clients.  Imagine a PS server being delivered.  Its pre configured all you have to do is plug it in and start using it.

So just like fusion being a game changer in the development space- Oracles VM, Linux and Sun purchases are going to change the infrastructure space.

So OK what do we do to get started with this stuff.  Well the goal here is to build a VM server with a place to deploy SOA and maybe even a PS install.

So whats needed- Two pretty beefy boxes.  One for the OVM Manager and one OVM Server.  I would recomend a xeon box for each.  With atleast 4 gb of ram.

So lets start with building a Manager.

  1. Install Oracle Enterprise Linux
  2. Install OVM Manager

This is going to be your main box to control everything with.  I also use this box as my JDeveloper box so its not tied down to this 100% but it has to be running linux- so you probably dont want to use your laptop

Now we set out to build the OVM Server.  Use the OVM Server disks to do a clean install on the second box.  OVM Server is a basic linux install with xen on top of it.

Next create a server pool within the manager and add your server to the list.

Then download the SOA Suite template and install that via the manager to the server.  And start that server.  And your done.   Now you have somewhere to deploy the packages you created.  Also if you want to experiment.  When you do the OVM Manager install it will give you a path to the WSDLs – maybe try to write a page or two in Jdeveloepr that can access them.

WebServices with ADF

November 14, 2009 - Leave a Response

Picture 7Till now we have looked at ADF as a pure DB Development platform.  We havent done any real coding in Java or used web services with ADF.  This next example does a very simple java program thats a web service and then we call the web service from an adf page.   So for those of you who live under a rock or on Mars- Java will take the place of PeopleCode and will be used for all edit checking and programing services.  So say we have todo a payroll calc then we would call a java program to do this calculation for us.  This program would be a java program that can be called via a web service.  So if we decide to change our business process where something (lets say an approval ) has to happen prior to the calc – this would just involve a simple change the the BPEL.  BPEL would be doing the entire orchestration for our process.

OK the Oracle tutorial is located at

http://www.oracle.com/technology/products/jdev/11/cuecards111/j2ee_set_14/ccset14_ALL.html

 

This is by far the most important tutorial- thats why I jumped to it as soon as I learned the basics.  This proces will be very similar to a daily task for a ADF developer.

So the things I think that are important are:

How to create a Java Program in Jdeveloper (though creating packages and classes are involve the same steps in eclipse, its good to see a simple example)  Also it seems writing java in Jdeveloper for PS developers will be easier than eclipse.

Introduction to a basic Java Program.- Ok if you dont know java- get your hands on Java for dummies and start to learn.

How easy it is to consume a web service.  If we had an existing web service it would be really easy to consume it via an ADF Face.

So where are we going with all of this?  Well our next example will be something we can relate to even more.  We are going to create a Web Service inside of PeopleSoft and expose it.  Next we are going to create an ADF page to connect to it.  Once we get to that point we are going to add some BPEL to our new custom process- so stay tuned.

PS- if you dont have 2 gb of ram on your laptop this exercise will crawl.

A ‘real’ ADF app

November 6, 2009 - Leave a Response

So I have been wondering how a ‘real’ ADF app would look.  Follow the instructions at http://www.oracle.com/technology/products/jdev/samples/fod/index.html and install this app.  Its cool to see how the drag and drop works as well as the other features.  Obviously this is way more complex than our department/employee mock up we did but its built using the same steps. What  I found intresting was the page flows and how that is used.    The other thing is it reminds me of the OpenLaszlo amazon store  http://www.openlaszlo.org/lps_demos/demos/amazon/amazon.lzx?lzt=html&lzr=swf9

Building My First App

November 3, 2009 - Leave a Response

I decided to use this simple application as my launching point into ADF.  The first app is a simple page with a parent level to the left and a child area to the center.  I followed the following guide http://www.oracle.com/technology/obe/obe11jdev/bulldog/ria_application/developriaapplication_long.htm

MyFirstApp

A few simple notes to make your life easier

Select where you want the object to go on the page first by clicking in that spot.  Say we want to add a grid to the right panel.  Well I would click on the right panel first.  then I would go to the ADF Faces list on the right side column in JDeveloper and select the grid.  That will place a grid in the right panel where I wanted it.  This will be hard to get use to since we are use to the drag and drop world.

When you compile and run it may take a while for the IE window to open and you will see lots of red in the console pane at the bottom of your Jdeveloper screen.  Its not a big deal- remember red is a good color now.   Whats happening is its launching weblogic on your box as a web server.  So it looks like in the ADF world you can do development while not connected to the network (as long as you have all of your data sources).  JDeveloper also has the ability to create mock DB services so you can create an app on your local client with no database.  Jdeveloper is also a resource hog so makesure you have atleast 2gb of ram, trust me,  that also means my 4 year old laptop is starting to show its age.

It seems like its more steps than creating an app within PeopleSoft.  Well it is.  there are a few things that PS did for us that JDeveloper does not.  We have to import in a data source.  And we have to format the page our selves, its more flexible than the PS pages we are use to.  Also when we run the app we go directly to the page, it seems that security is not integrated from the start for our apps and may need to be connected later on.  Also one big difference is that there isn’t a generic site we log into and navigate to our page.  So the entire idea of menu navigation does not exist on our simple app at this point.  But there is a good reason for that.  Our ADF pages in Fusion Applications are for exception handling.  So if you watch the oracle OpenWorld key note you will see how the system emails functional users when they need to be involved and it sends them a link to the page.  Remember our old 80/20 rule we used with our clients.  The same thing applies here, our pages will most likely be used for the 20% who need some sort of manual intervention.

A few UI observations

On top of the grid there is a row of text boxes.  This is oracles Query by Example.  it allows us to filter the collection by just adding text inside of one or more of those boxes.  This is just one use of AJAX inside of the app where the entire page does not have to refresh to show the result set.

The detach button basically hides the rest of the page and expands the gird.  The little arrows between the sections of the page also collapse and open up more work space.

Getting Started

November 2, 2009 - Leave a Response

Obviously the first thing we need to do is build a basic environment to play in.  This environment should allow us to develop a small app and deploy the app for testing.

Step 1. Go to Oracle.com

Step 2.  Download and install JDeveloper

Step 3 Download and Install Oracle XE.  Oracle XE is a version of oracle that has been striped down.  Now I know a few you you techs out their are going to be 11g or nothing and think that you are cool and stuff.  Well the jokes on you since all my examples you the XE database.  One thing- Remember you System user password.  You will need it to log in.

Step 4  Log in to your XE instance.  It should have launched IE with the log in page.

Step 5 Go to Administration-Database Users-Manage User

Step 6 Select the HR User

Step 7 Makesure HR user is unlocked

So what is ‘Fusion’

November 2, 2009 - Leave a Response

Fusion is a marketing buzz word that someone at Big Red came up with.  Fusion in many cases is mistaken for a technology or an application.  But Fusion is way more than just that.  True there are Fusion Applications being developed, but just to say its Fusion, is simplifying that its a whole bunch of applications.  Just like most of us don’t go around to our fellow consultants and say I know PeopleSoft, I wouldn’t go around and say I know Fusion.  I know Campus Solutions and PeopleTools is a better way to say it in the PS world.  The Fusion name is also used for Oracle Fusion Middleware.  OFM is a collection of technologies and us all being techs should call it the appropriate technology name.  For example we dont call SQR just PeopleSoft.    And in the Fusion world its better to say I know Fusion Applications HR, BPEL and ADF.  And don’t ever send out an email like “ I am trying to write a Fusion Page and I am getting this error”- I wont answer.

‘Fusion’ middleware consists of multiple products

Enterprise Application Server(s)
Integration and Process-Management
Development Tools
Business Intelligence
Systems Management
User Interaction
Content Management
Identity Management
Grid Infrastructure
Performance.

CCI has spent a lot of time  becoming probably the best when it comes to ‘Fusion’ Integration and Process-Management.  Thats BPEL.  Business Process Execution Language.  The BPEL group is also known as the SOA group in CCI and came to CCI via the merger of E2E consulting.  In a nutshell BPEL connects systems to make a seamless business process.  We wont spend too much time going over BPEL initially but later on we will use BPEL to connect a sample app or two.

So where do we start out of the long list.  Well that depends on what your role is.  Lets start with the developer role in the PS world.  So in the Fusion world crApp Designer is replaced with Jdeveloper.  And Page Building in the Fusion world is ADF.  Or Application Development Framework.  So going forward  this blog will concentrate on ADF.

WTFusion

November 2, 2009 - Leave a Response

Since December 13 2004 all of us have been wondering what will happen to our beloved PeopleSoft PeopleTools.  Initially many of us were unsure about the unknown and what Oracle would do to the product.  Initially there were rumors that it would be phased out, but we were slowly calmed by the news of Applications Unlimited where oracle would support all the applications it purchased.  And of course Oracle had the game plan of creating a new application named Fusion in the future.  I think it was to hit sometime early in the next decade.

Whats this- the next decade is almost here.  We are in the tail months of 2009!  Oh, Dont worry no one ever gets their apps out on time, Hell look at microsoft and vista and Windows 7.  What!  Oracle has announced Fusion Applications and even demoed it at Open Word this year!  Ok techs, has your panic set in yet, with what tools do I have to learn and whats changed and how do I prep?  If it hasn’t – It should.

My goal with this blog is to help our CCI techs (and others) in learning what ‘Fusion’ is and how do we get the skills to go forward.

And as always, feel free to contact me with questions and comments

Ravi Joshi

ravi.joshi@cedarcrestone.com