Oracle acquires Sun: Who needs to look out now?

As a Java developer who does a lot of work with Oracle products including Jdeveloper and ADF, my head is still spinning a little from the news that Oracle is buying Sun Microsystems.

Oracle buying BEA hurt a little, though it was completely expected and a great move on Oracle’s part, I was a little sad to see the application server competition field drop by one but I was very happy that Oracle was smart enough to choose Weblogic.  At that point it was really the only the decision they could make.

With Oracle buying Sun there is a lot of synergy, there are many technologies that are duplicated among both companies.  Oracle owning both should make those technologies better and enable them to compete with the leaders in those respective areas.  The big ones that stick out for me:

!. Oracle’s JDeveloper and Sun’s NetBeans

Could they really afford to drop NetBeans, probably not, but can they afford to drop JDeveloper, no, not really.  Here the only thing that really makes sense is to merge the two, probably adding in the ADF wizards and goodies like that into NetBeans.  At least, that is what I hope they do.  JDeveloper isn’t bad, but I only ever use it to develop ADF projects and I bet many, many people are in that same boat.  Combining the two could end up giving Eclipse a run for it’s money, hopefully the competition just spurs both to be better.

2. Oracle’s Oracle VM and Sun’s Virtual Box

I haven’t had much experience with Oracle VM, but I have lately become a huge fan of Sun’s Virtual Box.  It’s a great product and it lets me do everything I want for free.  Will this continue to be the case?  I don’t know.  I’m not an expert on virtualization in the enterprise, I use it for desktop VMs, but I hadn’t seen much about Virtual Box working in that space.  I would imagine Oracle VM is all about virtualizing the network and competing with VMWare on that level.  With the two together VMWare’s got some competition.

3.  Oracle’s Unbreakable Linux and Sun Solaris

Oracle had a great jumpstart to their linux platform basing it on the RedHat codebase way back when.  Solaris was my first exposure to any type of Unix (Solaris and AIX, actually) and it has been around forever.  If the adoption of Linux has hurt anything, it’s probably been Solaris and through that, sales of Sun’s hardware.  Oracle says that their owning of Solaris will enable them to tune the Oracle Database software to run even better on it, and since according to Oracle, most of their database customers are using Solaris, I think they’ll probably do that.  I have no idea what will have to Unbreakable Linux though.  Who has to look out with this one?  I’d say IBM.  Buying Sun probably would have been good for them in the products space, I think the only area IBM is going to be competing in future is going to be services.  RedHat has Ubuntu to worry about on the desktop side and now a bigger threat from Oracle and Sun on the server-side, they have their work cut out for them.

4.  Oracle Database and Sun’s MySQL

MySQL has a huge customer base, most of them probably non-paying.  I think with this one, Oracle just adds it to their ever increasing repetoire of niche databases.  It won’t go away, but I see less adoption in the future, maybe a boost for PostgreSQL if they can get their act together.

5. Sun’s Java and Oracle’s ADF

Oracle has always been a big player in the specifications for the Java language.  I’m sure someone else will go into all the details, because I honestly don’t know them off the top of my head, but I do know that many technologies and ideas that ADF is based on where either approved JSR’s or close to approved JSR’s.  Does Oracle’s acquisition of Sun and Java mean that they will be better equipted to push trhough whatever they want to add to the language?  Well, I don’t think it will be quite that easy, but I’m sure it makes it easier.

I’ve always been a Java guy at heart, I work with Oracle technology sometimes, and I think they have really come a long way, but Oracle owning Java does kind of scare me a little.  One thing Oracle does really well, and JDeveloper is great at this, is making complex technologies easy to use.  It is what Microsoft does really well.  .NET makes easy the things that Java makes hard.  ADF actually does a lot of the same.  The combination of ADF and Java together could pose a big threat to Microsoft’s .NET if Oracle does it right.

My first thought about Oracle owning Java is that many developers are going to jump up and down about it and complain.  Some will probably jump ship, maybe to .NET but probably to Ruby or PHP or something else.  I don’t think many coroporations are going to change the direction of their IT departments though, so for them, it will be .NET or Java as it always has.  In the end, I thnk most Java developers are going to remain Java developers and hopefully Oracle’s backing of Java will just end up making it a better language to work with.

Microsoft might have more to worry about with Oracle owning Open Office now also.  I hope that Oracle continues to invest in it, or it’ll end up being Microsoft Office vs. Google Apps and that’s about it.  I’m all for cutting edge, but Gmail hasn’t come out of Beta yet and I’d like to see Microsoft have some competiion in this area.

So I wanted to get my thoughts out there while they were floating around in my head and hopefully yours so I could hear your opinions on the topic.  Please let me know what you think about this acquistion and what you think it means to the future of technology and competition in the field.

Share/Save/Bookmark

Speaking Engagement: Collaborate 09

It looks like my abstract was accepted to be presented at Collaborate 09 coming up in Orlando in May this year. As the schedule stands now my session will be first thing Monday morning (first thing being 10:45 thankfully!), which leaves me the rest of the time to see what’s new in the world of Oracle and Oracle Users.

In case you haven’t heard of it, as their website says: “COLLABORATE 09 helps users of the full family of Oracle business applications and database software gain greater value from their Oracle investments. Created by and for customers, COLLABORATE 09 offers an expert blend of customer-to-customer interaction and insights from technology visionaries and Oracle strategists. Expand your network of contacts by interacting with Oracle customers, solutions providers, consultants, developers and representatives from Oracle Corporation at COLLABORATE 09.”

So if you are going to be there, be sure to stop by my session and say hello.

Share/Save/Bookmark

Webinar: Client/Server Oracle Forms Modernization with Oracle ADF 11g

You might thinnk I could have come up with a shorter or even catchier title by now, but I really haven’t.  Anyway, the point is that I will be hosting a webinar on modernizing Oracle Forms applications and why Oracle ADF 11g is a good platform for doing that.  If you have followed my blog, you’ll know that this is a topic near and dear to my company, Vgo Software.   You would also know that this is another variation of the presentation that I’ve done at ODTUG this year, at the Oracle Open World Unconference event, and at a couple user groups along the east coast of the U.S.

If you are interested in participating in the webinar, you can register at our site.  Stacey assures me that you can even ask a question when you register and if you do that, I’ll be sure to make sure I cover your question during the webinar.  The date is Noveber 12th, 2008 and the time is 11:00 a.m. EST.

The main difference between this one and the presentations at conferences I’ve done on the same topic is that this one will not include a demo of JDeveloper and instead I will add some more slides to cover more detailed content.

Share/Save/Bookmark

JDeveloper 11g Released

JDeveloper 11g is now available for download from Oracle.

What’s great about this release?  Well, in my opinion besides having some of the Tech Preview bugs fixed, having Weblogic embedded in JDeveloper is a great improvement over OC4J.

So what are you waiting for?  Go check it out!

Share/Save/Bookmark

Off to Oracle Open World 2008

Tomorrow morning I am off to Oracle Open World 2008.  This is the 5th year that we will be exhibiting there, and I believe this will be the most exciting year yet.  I’m sure that the show will be interesting, it usually is, and I get to hang out with some people that have become friends over the years via the show.  I believe their Appreciate event features Elvis Costello this year.  I don’t think that is going to compare to Billy Joel’s performance last year, or the sheer fact that you had to choose between Stevie Nicks, Lenny Kravitz and Billy Joel, but it should be fun nonetheless.

What I am really excited about this time around, however, is more business oriented.  This year we will be demoing our Evo forms conversion tool, as we always do, but this year we are converting forms to Oracle’s ADF 11g framework, both the ADF Business Components and the ADF Rich Faces layer.  I’m not going to tell you that these forms are being converted 100%, frankly, I don’t think that it’s possible in a practical way.  We are converting enough of the forms to show a fully functioning BC layer and a fully functioning UI layer, however, and that is, IMHO, pretty cool to see.

So if you are going to OOW this year, be sure to stop by Vgo Software’s booth and ask for a demo.  Be sure to check out the group discussion about creating an ADF Methodology that I will be participating in at the Unconference, stop by to see Andrejus Baranovski’s presentation and the other Unconference presentation Andrejus and I will be doing about using ADF 11g as a platform for forms conversions.  It will be similar to the talk I gave at ODTUG, but it will probably be a little more technical with Andrejus’s input.

Hope to see you there!

Share/Save/Bookmark

Auditing Code in JDeveloper 11g

The 11g release of JDeveloper includes a utility to perform code audits without having to install additional plugins. While the information it provides out of the box is minimal, for some violations you can also ask JDeveloper to fix the code automatically.

The metrics it provides:

NOS: Number of Statements in the construct.
V(G): Cyclomatic Complexity, a metric that captures the number of branches that can be taken through a method.
DIT: Depth of Inheritance Tree, this metric describes how far a class is from it’s furthest ancestor, or really, how many classes has it inherited from.

You can run audit reports on your projects pretty easily.
1. Select the project node in the Application Navigator.

Select the Project to Audit

Select the Project to Audit

2. Select Run from the main menu bar.

3. Select Audit Project.jpr

4. Choose All Metrics

View Audit Reports in JDeveloper

View Audit Reports in JDeveloper

5. View the report in the log window

You can also run audit reports on rules violations. You can easily modify which rules you would like to include and which you wouldn’t along with which available metrics you’d like to include.

Change the Rules to Audit in JDeveloper

Change the Rules to Audit in JDeveloper

A couple things to keep in mind as you view the metrics:

1. The V(G) of RowImpl classes is going to be high because of the case statement within the getAttrInvokeAccessor method. This is normal for ADF.

2. The DIT is going to be above the default threshold for some of your Impl classes also, for instance, any Application Module Implementation. This is the class you need to extend is already so far down in the chain.

There are only a couple metrics that can be run from the audit tool built into JDeveloper and I’m sure there are ways to integrate other code auditing tools in JDev, but at least it’s a start.

One tool I was hoping to see which I imagine is a long way off is some type of auditing tool for ADF itself.  Since so much of it is declarative and new, no existing tools are going to work on it, but it’d be nice to be able to audit the declaritive part of ADF projects for best practices.

Share/Save/Bookmark

Oracle Open World Unconference - ADF as a Platform for Forms Migrations

I am going to be at OOW this year, as usual, and this time I will be presenting my talk on using ADF 11g as a platform for Oracle Form conversions.

My presentation outlines the use of 11g ADF Faces, ADF Business Components and JDeveloper as a target platform for applications that were previously written in Oracle Forms. The 11g version of ADF contains many new features that make it a much better framework for such conversions than others. These include the use of Task Flows and richer JSF components. . This presentation explores some of the difficulties in recreating such applications in a web environment and shows how ADF 11g can be used to alleviate some of those difficulties and what difficulties still remain.

I signed up for the Unconference early to reserver a spot, so right now it is scheduled for 11am on Tuesday morning in Overlook I. Hopefully when I get there to sign up, the slot will still be available, stop by the booth before then if you are interested in attending or check the schedule that will be posted there.

If you are going to be there, be sure to stop by!

Be sure to check out the rest of the Unconference Schedule.

Share/Save/Bookmark

ADF 11g: Using Custom Properties To Create Update-Only View Objects

One of the cool features of the ADF Business Components layer in 11g is the ability to add custom properties to Entity or View objects. It’s a neat feataure but up until this point I hadn’t really any need to use them.

Then, when I was trying to implement a View object as only allowing updates, not inserts or deletes, I learned that there isn’t really a way to declaritively do this in ADF 11g. It seemed like one of those things that should be available, but the help says this:
“Some 4GL tools like Oracle Forms provide declarative properties that control whether a given data collection allows inserts, updates, or deletes. While the view object does not yet support this as a built-in feature in the current release, it’s easy to add this facility using a framework extension class that exploits custom metadata properties as the developer-supplied flags to control insert, update, or delete on a view object.”

The above quote is from section 37.11 of the Fusion Developer’s Guide for Oracle ADF. The section is actually titled “Declaratively Preventing Insert, Update, and Delete” which sounded like exactly what I wanted, but when i read the section I found that little bit of discouraging news. The last few words were encouraging, I thought using custom proerties to control insert, update, or deletes would be perfect, then I read on.

The next couple paragraphs seem to indicate that it would be a good idea to create instances of the view object that are called ViewObjectInsert, ViewObjectUpdate, and ViewObjectDelete, generic framework code could be used to look for these View instances and based on if a custom property is set then blah, blah, blah. I think it actually said something about looking up the phase of the moon also.

I’m not sure why you would want to have custom instances to determine whether or not customer properties should be looked up or not, why not just use custom properties? Anyway, that is the route I decided to take and it turned out to be pretty simple.

Chirs Muir had written an article on using custom properties to automatically convert the case of input and I used his article along with the help section of the Fusion Developer’s guide to come up with this solution. Thanks Chris!

1. Create a custom ViewObject implementation class.
This is done by creating a class that extends the Oracle View Object.

Create a New Java Class

Create a New Java Class

1a. Right click on the package you would like your custom class to reside in.
1b. Click on Simple File in the left pane and Java Class on the right pane.
1c. Name the file and make sure it extends the ViewObjectImpl class.

2. Create a method to check the custom property.

     private boolean isAllowed(String action) {
         boolean result = true;
         if (getViewDef() != null) {
             if (getViewDef().getProperty(action) != null) {
                String actionProperty = (String) getViewDef().getProperty(action);
                if (actionProperty != null) {
                    if ("false".equals(actionProperty)) {
                        result = false;
                    }
                }
             }
         }
         return result;
     }

3. Override the appropriate methods.
3a. Override the createRow method to check if Create is allowed, and if it isn’t throw an exception.

    public Row createRow() {
        if (isAllowed("insert")) {
            return super.createRow();
         } else {
            throw new JboException("Create not allowed in this view");
         }
    }

3b. Override the removeCurrentRow method in the same way.

    public void removeCurrentRow() {
        if (isAllowed("delete")) {
             super.remove();
         } else {
            throw new JboException("Delete not allowed in this view");
         }
    }

4. Add the necessary declarations to the View Object you wish to have these features.
4a. Add the following line to the attributes of the View Object to have it implement the framework class.

	ComponentClass="com.vgo.demo.framework.MyCustomViewObjectImpl"
Add Custom View Properties

Add Custom View Properties


4b. Add the necessary custom properties to the View Ojbect. Click on the General section of the Overview tab of the view object. Open the section for Custom Properties and click the green plus. Change the name to “insert” and the value to “false”. Click on the green plus to add another cusom property, name this one “delete” and set the value to “false”.

5. That’s it, it is that simple. Now run an Application Module that contains that View and try to insert or delete, when you do, you should see the exception that is thrown to inform the user that the action is not permitted.

Error Message for Insert Shown

Error Message for Insert Shown

As you can see, custom properties in ADF 11g are sure to prove extremely useful in the future, I am sure this is but one potential use for them.

Share/Save/Bookmark

Vote for my Oracle Open World Session

The talk I presented at ODTUG this year went over very well with the people who attended, but unfortunately, there were not all that many in attendance.  Since I missed the deadline for the normal submissions to Oracle Open World this year, I submitted by talk to Oracle Mix’s session submission area.  As one person put it, Oracle Mix is pretty much facebook for people working with Oracle technologies.

Anyway, you can vote to see my session at Open World by clicking here.  I promise you that my presentation is not a vendor presentation, I don’t talk at all about Vgo Software or the tool(s) that we make that make the process of modernizing forms easier.  What I do talk about is how ADF 11g allows you to rewrite Oracle Forms applications in a web environment and some of the pitfalls you will run into when you try to do this.

The presentation also includes a demonstration of creating a Master-Detail page in ADF 11g, much like some of my previous blog-posts.  It is after all, one of the cornerstones of an Oracle Forms application.

Share/Save/Bookmark

ODTUG - Final Day

Today was a short day, for manning the booth anyway. We didn’t have anything to give away this year so it made the close of the booth somewhat less exciting. I didn’t actually get to see any sessions today, but I did manage to talk to many people that are trying to decide what to do with their old Oracle Forms applications.

I told them what I always tell ‘em. Upgrade your forms for the most part, unless you have a compelling reason not to do so. Converting to ADF or Java is going to be time consuming and expensive, even when you use a tool like Evo.

I got to find out what the JHeadstart gang have been up to. I even managed to catch up with Wilfred and Grant today, so it hasn’t been a total loss.

I should have taken some pictures of our booth with my phone but I did not. Stacey, the marketing associate with us got some good pictures of it on her camera. I’m sure she’ll have those pictures up on the site sometime soon.

Tonight is the big Fat Tuesday on Wednesday bash, so that should be a fun end to trip for us. For Andrej, being an Oracle Ace Director, he gets to spend a few extra days exploring New Orleans, not a bad deal.

Hopefully our presentations will be up on the ODTUG site soon so that you can download them and take a look.

Now that I’m coming back from the conference, the next blog posts should have a little more meat to them. I think I’m about overdue for something technical.

One last thing before I forget, a picture of Andrejus during his presentation!

Share/Save/Bookmark