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

Installing JDeveloper 11g on Ubuntu 8.10

I recently got a little annoyed at Vista and upgraded my desktop workstation to run Ubuntu Linux.  As it has been the holiday season and I’ve been busy modeling in XML (more on that later!), I hadn’t had the chance yet to install or run JDeveloper 11g on my newly configured desktop.  Today I decided as part of the new year, I’d take the plunge and give it a whirl.

Here are the steps I followed to install JDeveloper 11g on Ubuntu.

1.  First off, download the installer from Oracle here:http://www.oracle.com/technology/software/products/jdev/htdocs/soft11.html.  I downloaded the Linux install that includes JDK 6 as running java -version at a terminal in Ubuntu revealed that I was running 1.5.0.

2.  Change the permissions of the downloaded bin file to allow execute.  chmod +x jdev* if you are lazy like me.

3.  Open a terminal window and change directory to the directory where the downloaded file is.

4.  type ./jdev* to run the downloaded file, as long as there are no other files whose name begin with jdev in that folder, if there are, type the whole thing out.

5.  Choose complete install - you are going to need it all anyway.

6.  I allowed it to install under my home directory.

7.  After it installed and the Quickstart Launcer appeared, I chose to open JDeveloper Studio.

8.  Since the installer did not create a menu item for me in my Applications Menu, I did that manually.

9.  Right click on the Applications Menu and choose “Edit Menus”.

10.  Select the Menu you want to add the entry to, I chose “Programming”.

11.  Select “New Item”, for the Type choose “Application”, for the Name: “JDeveloper”, for the Command: “[Install Dir]/Oracle/Middleware/jdeveloper/jdev/bin/jdev” replacing [Install Dir] with the correct path.

And that’s all there is to it.  Probably not even worth a post at this point, but since I typed it while installing it and I didn’t realize it was going to be so painless, I might as well post it anyway.  I’ll post again about it if I run into any quirks using it, hopefully it’s as seamless as the installation was.

Share/Save/Bookmark

What’s in our (Oracle) Forms?

Though this blog typically contains how-to’s and editorials and Java and ADF related topics, it is supported by my company, Vgo Software, and so I occasionally need to plug one of our products.  This post is one of those, so read it at your own risk.  However, if you are working in a company that works with Oracle Forms in addtion to Java or ADF, I encourage to read it, you may find it of use to you.  If you have no idea what I’m talking about, feel free to skip it.

Many of our customers over the years have asked us that very question about their Oracle Forms applications.  As a provider of tools and services to help customer modernize their forms applications we took the opportunity to develop a product that would help answer this question.

Forms is a 4GL developed by Oracle that has been around for many years.  I first started working with Forms in version 3.0 about 15  years ago.  At that time I was working in the IT department of a chain of supermarkets.  All of their accumulated data was stored on a mainframe, of course, but each store had a couple systems running on IBM servers that ran an Oracle database and Oracle Forms.  Part of my job consisted of making fixes and enhancements to those applications.

What I found, as did many others, was that Oracle Forms was a very easy way to create applications that were based on an Oracle database.  As a developer I could create a Block based on a database table, provide some validation triggers and a couple of buttons, and voila!, a user could now input validated data into a table.  Master-detail relationships were also simple to create.  Interaction with other systems was more difficult and typically done via Oracle Pro*C programs run by shell scripts.  One application I worked on synced data from a handheld device to the store’s database using a C program, that was probably one of the more interesting applications I worked on then.

As I moved on in my career, I lost touch with Forms, but came back to it many years later.  In a later job, I was asked to research communicating with a Java server-side application from a Forms Client/Server application.  If I remember correctly, the implementation included creating an Active-X control (or was it COM back then, I can’t remember?) that was embedded in the form and could make a call to an EJB on a Weblogic server.

Forms has come a long, long way since those 3.0 character-mode days, and even from those Client/Server days.  As Oracle Forms has evolved, so have the applications that customers have created with them.  Working in the business that I am now, modernizing forms applications, I have seen plenty of forms applications ranging from relatively simple applications that consisted mostly of Blocks based on tables, to incredibly complex applications that never tie a block directly to a table but instead us a Control Block to capture user input and then run some complex logic on it both in the form itself and on the database server through complex stored procedures and functions.

What we found when we first started out, was that everyone has their own idea of what is simple and what is complex.  In order to deal with that and improve our ability to estimate the amount of work required to complete a project, we developed into our modernization tool a function that analyzed what we perceived to be the complexity of any given Oracle Form.  As we did more of these projects we realized that there are many customers out there with Forms applications that have existed for so long and been developed by so many different people that they themselves have no idea of what those forms consist of.

Evo ART is a product that we started about a year ago.  It is an Analysis and Reporting Tool for Oracle Forms applications.  It is written in Java and so requires having a JRE verison 1.5 or higher installed.  It helps those customers that are wondering what is inside their Forms applications.  It has itself evolved from consisting of only a complexity analysis to providing many details about the application that would take a developer potential months to discover on their own.

From being able to see the dependencies within the form modules and their libraries, to the dependencies on database objects, ART is able to show all of that at a glance.  If you are interested in upgrading from a Client/Server version of forms to a web version of forms, ART can show you where you are going to run into trouble in the guise of functions that aren’t going to be available anymore.  If you are interested in modernizing to a completely new multi-tiered web architecture, ART can show you where you are going have problems finding equivalents and may require a re-design.  Want to know how much of your code in your forms is redundant, ART can show you that, too.  You’d be surprised how much cutting and pasting went on in those PL/SQL-based applications.

The other cool thing about ART, in my opinion, is that like our Evo tool, its output is customizable.  Have a PLL-based function that you know you want to redesign and want to know what forms out of your 500 form application are calling it?  A new report can be easily added to ART to show you that.   Want to create a report that only shows which forms will be impacted by a certain table-change?  ART can do that too.

So if you are one of those unfortunate enough to have inheritied a large Oracle Forms system and you are unsure of what it contains or how complex it is take a look at how ART may help you.

Sorry for the product plug, more informational posts will follow, I promise.

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

Back from Oracle Open World 2008

I am back from Open World 2008 and been so busy catching up with work that I haven’t had time to post anything.  Being an exhibitor I spent a large majority of my time at the show tending the booth.  It was very busy this year and I spent a lot of time talking to people about their Oracle Forms applications and showing them a demonstration of our product.

My session on using ADF 11g as a Platform for Forms Modernization projects went well.  It was an unconference event and probably had about 12 attendees, they all seemed interested in the topic, however, and that was cool.   Andrejus drew a pretty large crowd during his presentation on integrating Maps and ADF and it went really well.

The ADF Methodology group met at an Unconference event and it was very well attended with many representatives from Oracle making an appearance.  It was nice to attach faces to a lot of these e-mails that have been going back and forth in the ADF Methodology Google Group.  There is still a lot of work to be done on the methodology, but it has come a long way since it started.

The announcement from Oracle that was the most exciting for me was that Oracle ADF and JDeveloper 11g will be released in the near future, hopefully today or this week.  For those of us that have been working with Tech Preview 4, this is very welcome news!

That’s it for now, stay tuned and I’ll be sure to get back to something technical soon!

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