Posts Tagged ‘Oracle’

BPEL, Beehive and Service Repository at OOW

Ronald van Luttikhuizen September 29th, 2008

This recap of some interesting OOW2008 sessions is posted a bit later than expected since my baggage -including notes- was stuck on the airport for a few days. Coincidentally my baggage was stranded at the same airport for which I codesigned the new baggage handling system. Maybe software can have a grudge against its creator after all? Luckily it was another terminal than the one I transferred through.

BPEL PM
There were several interesting sessions on BPEL PM by Clemens Utschig and Robin Zimmermann on the new features in 10.1.3.4, upcoming features in 10.1.3.5, and some useful tips and tricks for problem solving BPEL projects. A summary of the new and improved features in the Oracle BPEL PM 10.1.3.4 patch can be found here. The main objective of this patch is to make the BPEL Console a one-stop-shop. It therefore mainly introduces administrative improvements. The most interesting of these are:

Lost BPEL instances
Actually these instances are not lost, they just don’t show up in the BPEL Console. This is due to rollbacks in asynchronous process instances that are not yet dehydrated. This can e.g. be the case when a time-out occurs and the global BPEL transaction is rolled-back. The problem is solved by using a separate transaction for dehydration and not doing the actual instance’s work in the same transaction as the dehydration.

Deployment plans
This looks very much like the deployment plans already available in Oracle ESB. These plans are used to extract most of the configurable process information that differs per environment. Such information includes URL’s and ports of invoked services, adapter-specific information like inbound file names, JNDI locations of JMS queues, database adapter names, etc. etc. Ant tasks can be used to deploy BPEL processes to a target environment with the configuration of that specific environment. This information is wrapped in a BPEL suitcase. Part of the environment-specific information -not all, especially adapter-related information- could already be externalized using customized Ant builds. When an ESB is used to wrap adapter functionality, the need for deployment plans is not as urgent.

Other improvements in the 10.1.3.4 patch include improved visibility of engine threading model, improved statistics collection, minimization of XML coding errors through compliance testing and enhanced debugging of XML payloads, improved automated recovery agent (this feature was disabled in previous releases), and collection of support information when creating service requests.

Note that some of the latest 10.1.3.3 MLR’s are not included in the 10.1.3.4 patch. You’ll need to apply patch 10.1.3.4 followed by some additional MLR’s to update to the newest version. A preview of the new 10.1.3.5 features are also available in the PDF.

Some other cool stuff presented at OOW2008:

Beehive
Oracle Beehive is launched. Beehive is an integrated, open, and secure collaborative platform. Sort of a new and improved OCS, but then build from scratch. It provides seamless integration with -and abstraction of- all kinds of collaborative tools and technologies such as mail, file system, content management, feeds, calendar, mobile devices, chat, protocols, etc., etc. This is done through the notion of team and personal workspaces. Beehive also includes a Web based interface. Integration with existing user-interfaces or building more advanced user-interfaces can be achieved through its Java API and/or WebCenter Suite. That way you would have a WebCenter frontend communicating with a Beehive backend. See the Beehive website and the Beehive forum.

Enterprise Repository
Some products that were lacking from the Oracle stack prior to the BEA acquisition were related to governance. In the beginning of smaller, integration-aimed, and not enterprise-wide SOA projects technology usually poses a bigger risk than governance. However, in the course of SOA-projects lack of governance quickly becomes the main risk. Next to the runtime Service Registry product from Systinet, Oracle Web Service Manager, and the Enterprise Manager SOA Management Pack that Oracle offers, governance support now also includes the former BEA product Enterprise Repository. This product supports and enables governance at design-time. With this product you can -among others- “harvest” BPEL projects to retrieve artifacts such as processes, WSDL’s, XSD’s, and so on. Enterprise Repository creates a taxonomy out of this and graphically presents this. This way one can see for example what XSD is used by what processes, what policies are attached to what processes, and if these policies are met. Later versions will automate the retrieval of runtime information to automatically determine whether policies such as service response times are met. Publishing repository information to the development environment instead of the other way around should also be possible in future releases.

And this was just a small portion of all the OOW2008 news! See OTN for more information!

Architecture part II

Mary Beijleveld September 26th, 2008

Back to the digital world
In part I of this series we compared digital architecture with architecture of the physical world and mentioned enterprise architecture, reference architecture and project start architecture. In this installment ‘Architecture part II, back to the digital world’ I will explain something about Enterprise Architecture and projects & change.
In part III I will discuss Reference Architecture and Project Start Architecture. Of course there are more architecture types. I will discuss these later.

Enterprise architecture (EA)
In a lot of organizations architectures are made on the basis of the corporate strategy and on strategic goals and objectives. It wouldn’t be right otherwise, right? These architectures are ‘high level’ and have been established to promote the communication between business and IT. The viewpoints discussed and the models drawn in the context of an EA address a range of issues. It addresses problems that are current as well as potential. Thus, the main concern of an EA is the enterprise -wide identification, specification, and prioritization of business needs.
Now and in future.
Only this kind of architectures we can, in my view, call enterprise architecture. No invariable blueprint with a lot of details but a benchmark, as is the mission or vision of the company. It includes much more than a single proposed solution and may even result in multiple, simultaneous implementations. An EA is a more holistic view that unites business and technology needs based on a strategic enterprise vision.

It seems obvious that such an enterprise architecture is laid down as a kind of law by the governors of a company, such as the CEO, the CIO or a Board of Directors. You must consider EA as the IT strategic plan of the enterprise. It serves to give consistency and identifies dependencies. It outlines which direction must be followed and gives direction to the desired consistency of services, business processes, organization development, use of data in the information system, applications, and technical infrastructure in the organization and contains explanatory pictures and the most elementary construction rules.

EA and change
EA concepts have been around for a while. In due of accelerated environmental changes in organizations of all sizes across most industries business agility and, in particular, the ability of the technology infrastructure to respond to change in a timely manner have reached critical importance. That’s why the enterprise architecture discipline has gained such momentum.
Another factor contributing to a growing appreciation for the enterprise architecture discipline has been the more stringent regulatory climate, which is driving organizations not only to improve their accountability and reporting practices, but also to make compliance organic to every business process.
In response to this sharper focus on EA principles, enterprise architecture ‘paradigms’ have emerged, such as TOGAF ADM (the open group architecture framework, architecture development method) and Zachman’s framework , IFEAD (The Institute for Enterprise Architecture Development) and NORA (Nederlandse Overheid Referentie Architectuur) However, they differ substantially. E.g. because Zachman is a framework, TOGAF a method and NORA focuses on SOA and is meant for Dutch governmental organizations, etc.

EA to guide change
An enterprise architecture is subjected to change as the mission and vision of the organization and business requirements becomes more clearer and the companies environment is changing too.
When big changes are to be realized we tend to cut them in to smaller multiple projects we call ‘change programs’. The enterprise architecture can be used to guide these changes.

The translated desired company characteristics guide the need of projects and change programs and gives implications of these changes. Thus it is a means for architects, information managers, business consultants, design teams, designers and EDP-auditors to be able play their role, in projects or change programs, well.

With enterprise architecture you can:
 Recommend the management and program management about choices. (some models translated in more communicable pictures and drawings.
 Make frameworks to outline architectures at the start up of projects
 Proactively (give direction, train) guide designers
 Review of products (reactively) from change programs on content and consistency.
 Give business consultant, design teams and individual designers a ’stocked backpack’ so that they are able to follow direction and make the correct choices.
 Use it as reference by the internal Audit Department and external EDP-auditors.

The success of the concept of ‘changing under architecture’, through guidance from EA not only depends on a common, coherent picture of where an organization wants to be in future, but at least as much of the way the organization wants to achieve this and the willingness to adapt to change if necessary.

This asks for an intensive cooperation between architects, business people, the IT department and to a process in which it is clear & has been decisively agreed upon, how further interpretation, adaptations and deviations on architecture are realized.

When architecture is of that type, it really offers an ‘instrument’ to reduce the risk on loss of substantial consistency and give means to manage consistency. Guaranteeing consistency can, on the one hand, be realized by following construction principles of the company and on the other hand, by getting integrated insight in the structure of the company, by applying these principles.
This gives a grip on design, development, implementation and management of the renewed part of the organization.

Back to the physical world?
The function of an enterprise architect can be compared to that of a city planner. In contrast, the function of a ‘building’ architect is more readily associated with the IT architect role. The enterprise architect role often emphasizes the inductive skills of a detective over the deductive skills of a builder. However, the high-level perspective of the enterprise architect does not mean that this role is disengaged from the user community. On the contrary, an enterprise architect must be involved in helping customers understand their real needs (as opposed to wants) and to work with them throughout the implementation of a solution.

At the same time, an enterprise architect should be able to view his or her domain at a level of abstraction that prevents direct involvement in the practical aspects of implementations.
An enterprise architect should be able to understand the business problem and the business domain and explain it to the technical people and to be able to understand the technology domains and explain the technical possibilities to business people.

It is important that an enterprise architect plays a pivotal role in architecture governance, a function that is often either shared between assorted business and technical roles or, even worse, simply ignored. Architecture governance is the glue that provides both a context and a framework for all enterprise and project architecture activities.

Aqualogic @OOW2008

Lonneke Dikmans September 24th, 2008

Yesterday, I attended two sessions about former BEA Aqualogic products: Oracle BPM Suite new features, and Oracle Service Bus deep dive.

Oracle BPM (F.K.A ALBPM F.K.A Fuego)
The new 100 day release from Oracle will be called Oracle BPM Suite 10gR3. This is in accordance with the numbering schemes of the rest of the products in the Middleware stack, so that is nice. The session was fun to attend: there were three guys presenting and they had a demo. One of the things that always stands out with the BEA products, is that they pay attention to the user experience of the product. It showed in this session: they were talking about the different persona’s and scenario’s for the product.Very much to my liking!
The new release focuses on three items: making stuff easier, more collaborative and social, and more intelligent and powerful. This is approached from the point of view of the knowledge user (end user of the product), the business analyst (who designs the models) and the IT/Operations.

Knowledge worker

  • Office plugin. One of the new features that make it easier for the knowledge user is a plugin for Office. This makes it possible to start a process from your office application, rather than going to the workspace, create a new process and attach some files.
  • New box layout based on a usability study. The dashboard can be different, based on different roles that you define for the knowledge worker
  • Integration with Webcenter Interaction with Activity streams
  • Federation of process engines possible: you can have one Workspace, hooking up to different Process engines.

Business Analyst

  • There is going to be one way integration from Oracle BPA suite to Oracle BPM Studio. To be honest, this is an improvement because it means that business analysts no longer need to design the process in Oracle BPM studio, they can use Oracle BPA suite for that. Oracle BPM studio is based on eclipse. That is a very cool developers tool, not a tool that business analysts will particularly like….
  • Business rules can be changed @runtime, from the Process Administration Server. Versioning of the rules is part of that
  • BPMN support is very much improved, not just the rendering of it.
  • Improved support for XPDL 1.0 and XPDL 2.0. By the way: in Oracle 11g BPM Suite 11g the product will move away from XPDL as the native format and will use BPMN 2.0 instead.

IT/Operations

  • Process level debugging
  • Eclipse 3.3 support. By the way, this will be migrated to JDeveloper in 11g
  • Performance optimization options per process (e.g. greedy execution or not)
  • support for attachments in PAPI-WS

This release should be coming pretty soon, and looks very good to me.

Oracle Service Bus (F.K.A ALSB)
I also attended the session “Oracle Service Bus deep dive”. The most important new feature is support for JCA adapters. ALSB is a very nice service bus, and the session highlighted some of the features and terminology. The title was a little bit misleading. It was not a deep dive, more an introduction. People that already know the service bus did not get a lot out of it, I think. The presenter was fun though, and it is always good to get a summary like that as a reminder.

Overall I think that good things are happening with the products from the Aqualogic family.

Oracle & BEA: Single BPEL & BPMN runtime!

Lonneke Dikmans July 1st, 2008

Finally, we have an official statement about the product strategy that Oracle defined for the BEA weblogic, Tuxedo and Aqualogic!

Here is a summary, with the highlights from our point of view.

SOA Suite

Weblogic server will be the strategic JEE application server. Oracle application server will be supported mostly for Oracle Applications. SOA suite will still run on any JEE platform.
Service Component Architecture (SCA) will be the platform for SOA.
The ESB will be a combination of ALSB and Oracle Enterprise Service Bus, combining the XQuery capabilities and other features of ALSB with the good features of Oracle. Basically, ALSB will be re-engineered so it runs on SCA. The Oracle ESB features will then be added to the ALSB.
Not surprisingly, WLI is not strategic, Oracle BPEL PM is.

BPM

Oracle will converge the Aqualogic BPM runtime and BPEL runtime to a common BPMN and BPEL engine to support four patterns of BPM: human centric, document centric, decision centric, system centric
The most important thing that was the plan to converge the runtime of Aqualogic BPM with the Oracle BPEL runtime. This is very good news, since there have been problems translating the two. They will keep to design time offerings: BPA suite for formal modeling, Aqualogic BPM designer for agile modeling.

Portals
Here the same thing happens: BEA products are merged with Oracle products. BEA WL portal is not strategic, Webcenter is. BEA Aqualogic Interaction is not strategic either, some of the components like Ensemble are though.

All in all, most of the choices make a lot sense to me. I am anxious to see the convergence of BPEL and BPMN with ALBPM and BPEL PM. The downside is, that there are now even more products in the stack. This makes it even harder for customers to make the right choice…. I wonder how BEA developers and architects feel about the choices that have been made.

By the way, another nice result of this merger is the new architect space on OTN. Go check it out!

Read more...
Comments Off

Oracle Technology Day

Mary Beijleveld June 27th, 2008

On June 17th I attended Oracle Technology Day at Hart van Holland event center in Nijkerk.

The day started with a welcome speech by Johan Doruiter (senior VP). He spoke a bit about the statement of direction for Oracle Fusion Middleware and gave an overview of the SOA-landscape. He briefly mentioned the merger with BEA and its legal completion on august 1st. However no further important messages about the merger and consequences were given. On On July 1st a web conference will be held about this topic. September 10th an official statement will be made.

The next speaker, Oracle VP Chris Baker told us nearly the same things as Johan, in English.

After a break of half an hour the parallel sessions started. Obviously I choose for the SOA ‘ tracks’ and continued to do so the whole day. The track was chaired by Sandor Nieuwenhuijs. Other tracks covered topics such as Datawarehousing and Business Intelligence, Governance Risk & Assurance, Enterprise Content Management, Flexible & Manageable Systems and SAP technical stuff.

There were several vendors of technical and business solutions you could visit at an ‘information market’.

The 4 SOA tracks I attended were:

  • Oracle SOA suite 11g by Oracle & Chris Ras
  • Constructing a mid office at Rotterdam community by Deloitte & Inter Access
  • SOA life cycle by Hewlett Packard and
  • Fusion Middleware at UvU by Atos Origin

I have to confess that I thought the speakers told the same story again and again. I can agree entirely with the conclusions that an SOA project deserves a specific approach to change, business processes are starting point, workflow can best be modeled by or in cooperation with user/experts and tools just support. It wasn’t a secret to me that BPMN can be used for modeling and BPEL for technical implementation.

What struck me was the fact that every project seems to step into the same pitfalls, in spite of all elaborate publications and warnings.

Lessons learned:

  • There’s still a gap between business and IT. IT people don’t talk enough with business people or don’t understand business well.
  • Insufficient participation of users.
  • Testing isn’t part of the daily routine, testers aren’t involved from the beginning.
  • Too little POC’ s are being carried out.
  • Using processes as starting point takes much more time than taken into account at the beginning of a project.
  • Too ambitious projects (‘big bang’ with very compelling results) whereas taking small steps in iterations better suits SOA implementations.
  • Managers too often manage projects using waterfall methods (fixed planning, separate phases, big upfront design, and no multifunctional teams). As a result there is little or no flexibility and less possibility to change.
  • Technical support departments are involved too late.

Furthermore the usual issues and questions where mentioned; e.g. solving functional errors in processes because of asynchronous communication and more.
Of course ;) Oracle products and technologies were, very delicately, advertised as best suited to help solving the problems at hand. How and with what wasn’t discussed.
The program ended with a lot of car racing sound (noise) and a speech about the history of -and current security in Formula 1 by Olav Mol and a ‘network reception’ with Dutch delicacies like ’stokjes sate’ and ‘bitterballen’.

I enjoyed myself much more because two of my current colleagues were there; I met and spoke with a friend and an Approach Alliance colleague to be.

You can download the presentations here.

Read more...
Comments Off

Experiences with Vista and Oracle software (2)

Ronald van Luttikhuizen May 19th, 2008

A few months ago I wrote this blog about installing (Oracle) software on my new Vista laptop. I already installed these components several times on Windows XP, so I thought it would be a walk in the park. In the end, it took me a couple of days instead of hours … :-(

There are lots of threads on the OTN forums -like this one- dealing with Vista. It turned out I wasn’t the only one struggling with it.

This blog is about installing Oracle SOA Suite 10.1.3.1 and patch 10.1.3.3 on Vista. Common errors thrown at me -some gave me nightmares :-) - were:

  • OWSM configuration assitant fails.
  • Error: Missing ormi[s]://host:port.
  • This OC4J is configured to make JMX connections via RMIS and fall back to RMI if the RMIS port is not configured. The RMIS connection on the OC4J instance null on Application Server null is configured but a connection could not be established. The JMX protocol is specified by the oracle.oc4j.jmx.internal.connection.protocol property in opmn.xml.

I did three “batches” of steps to get it running:

  • Perform the pre-installation steps as documented in the Oracle SOA Suite 10.1.3.1 and 10.1.3.3 installation guides. These contain the usual steps like configuring a loopback adapter, not using whitespace characters in directory names, having the right JDK, etc. These guides are bundled with the SOA Suite installation files when downloaded from OTN. Performing these steps is “business as usual”. However, these steps alone didn’t work.
  • Perform some steps as documented in Metalink note 444112.1.
  • Browse through the OTN forums for the remaining errors and stacktraces.

These last two “batches” consist of the following additional actions:

  • Do not use underscores in your computer name. I had an underscore in it -love them since you can’t safely use whitespaces :-) - and I couldn’t run SOA Suite. See this forum post.
  • IPV6 is not supported with Vista. There are some compatibility issues between Sun’s JDK and the new IPv6 protocol. I explicitly disabled IPv6 by removing “::1 localhost” from my hosts file, disabling Internet Protocol version 6 (TCP/IPv6) for all my network adapters in the Windows network configuration, and added the following registry value (DWORD type) set to 0xFF:
    HKEY_LOCAL_MACHINE, SYSTEM, CurrentControlSet, Services, Tcpip6, Parameters, DisabledComponents. This is documented in the Metalink note. You can also add the Java option “-Djava.net.preferIPv4Stack=true” to use IPv4 instead of IPv6.
  • Install, start, and stop Oracle SOA Suite as administrator (e.g. right-click and choose “Run as administrator”). Somehow this causes the relative paths in the Start Menu shortcuts to not resolve to the correct locations anymore. I changed these locations to absolute file paths. To do this, edit the [SOA Suite home]/bin/runstartupconsole.bat file and change the line containing “set ORACLE_HOME”.
  • Firewalls and virus scanners are great when they are not hogging your system and/or block wanted messages. The latter happened on my laptop. I disabled the pre-installed security software since it blocked certain requests and replies from and to my local Oracle SOA Suite.
  • I did an advanced install and used Oracle 10g XE as dehydration store since the pre-installed Oracle Lite database (Oracle SOA Suite basic install) crashed every now and then.

These errors can be really frustrating. Especially when you successfully install the exact same software on another OS within the hour and all your “Linux” and “XP” colleagues have Hello World running on Oracle SOA Suite :-) Hope this helps.

Master/detail inserts and native sequencing in Oracle ESB

Ronald van Luttikhuizen March 13th, 2008

The SOA Suite forum on Oracle Technology Network (OTN) contains several posts on the use and configuration of the Database Adapter. This adapter can be used to perform database-related operations such as inserts, polling, invocation of PL/SQL, and so on in your SOA-environment. Some of these forum questions relate to inserting XML data into master/detail tables and how to use native database sequences to populate primary keys and automatically update associated foreign keys. I wrote an article Invoice Processing in a Service-Oriented Environment that contains a step by step tutorial on how to achieve this.

Read more...
Comments Off

Experiences with Vista and Oracle software

Ronald van Luttikhuizen January 30th, 2008

This is a quick overview of my attempts to install and run (Oracle) software on Microsoft Vista. A few months ago I got this new Dell laptop pre-installed with Vista Business. Last couple of years I mostly worked with 2000, XP and Unix/Linux so Vista was getting used to in the beginning; especially the enormous amounts of “Are you sure”, “Do you really want this?”, “You’re not allowed to do this”, etc. pop-ups (even more than XP had). Although I must admit that some of the new UI-stuff is real eye-candy.

Some general (and sometimes really frustrating) issues I ran into when trying to get Vista up and running was the new IPv6 network protocol and updated WPA stuff (my existing router and wifi configuration really had a hard time connecting to my laptop or vice versa – I’m not a network guru, maybe that’s the problem after all :-) , the new user account control (UAC) policy in Vista (I couldn’t stop some Windows services in the beginning even when logged on as admin) and the pre-installed firewall, virus scanner, etc. which made my (finally up-and-running) Internet connection and network adapter crash. So after some reboots and resetting my laptop to factory settings I thought I had the new Vista “under control”.

Time to install some real business software.

Up to now I have the following software up and running (didn’t really test all software extensively yet):

  • Sparx Systems Enterprise Architect
  • JDK 5 and 6
  • Eclipse SDK
  • Eclipse WTP
  • Oracle BPA Suite
  • JDeveloper 10g
  • JDeveloper 11g – Technology Preview including SOA Suite and WebCenter
  • Oracle XE 10g
  • Oracle SQL Developer
  • Oracle OC4J 10g

Some tips:

  • Don’t use the standard Vista (un)zipper when unzipping software with long directory- and filenames. For example, I couldn’t run Eclipse WTP since the Vista unzipper didn’t extract all the extension files. This can be tricky since some installers won’t even indicate that all files are not properly unzipped. You can start Eclipse WTP, develop some code, but when trying to add a server, there’s nothing there to add?! Use another tool such as 7-Zip.
  • Run all installations and configurations as administrator; right-click and choose “Run as administrator”.
  • I ran into an error when installing a standalone OC4J. This was caused by compatibility issues between Sun’s JDK and the new IPv6 protocol. Trying to shut down OC4J returns an error indicating “Error: Missing ormi[s]://: “. See this forum post for a solution. I simply added the -Djava.net.preferIPv4Stack=true
    parameter to the OC4J startup command in oc4j.cmd.
  • Read the installation manual. Ok, I know this sounds a bit daft, but there are numerous forum questions in which it turns out people didn’t configure a loopback adapter, didn’t have the right JDK installed, etc. So after all, it’s really worth reading the manual.
  • Make sure the directory structure for your Java and Oracle installations don’t contain whitespaces or symbols such as # or @. I only use letters, digits, dots and underscores. Not all software can handle other characters.

Ok, in the next couple of days/weeks I’m going to (or at least try to :-) install SOA Suite 10g (lot of forum posts on installing this on Vista), Oracle Database 10g Enterprise Edition and playing around with Coherence.

Oracle SOA Suite best practices guide

Lonneke Dikmans December 28th, 2007

Justin Kestelyn blogged a little while ago about the release of the Oracle® SOA Suite Best Practices Guide 10g Release 3 (10.1.3.3.0). I did not find the time to read the entire guide yet (it has 272 pages in total), but you can easily use the guide as a reference to lookup information about transactions in ESB, file size limits, XML debatching with the File adapter, to name a few of the topics I did read.
The guide consists of two parts:

  • Part 1. SOA Suite components. This part is not really about best practices, but explains the ins and outs of different SOA suite components. The term SOA Suite is not completely clear to me: in this case it is not what you download when you click on the link download SOA Suite. Maybe it refers to the concept SOA Suite. It covers Oracle BPEL process Manager, Oracle ESB, Oracle BPM Human Workflow (what a weird name is that???), Oracle Technology Adapters, Oracle Data Integrator and Oracle B2B, but not Oracle rules, Webservices Manager or Oracle BPA Suite.
  • Part 2. SOA Suite performance best practices. This is the part that really talks about best practices. It contains configurations and examples from real use cases. Both the problematic configuration and the solution are described. This is really helpful when you are designing your system, or when you are troubleshooting performance. It covers JMS to database adapters, Oracle BPEL process manager, and Oracle Human Workflow.

This guide is not a best practices guide for designing or managing your SOA, but it is definitely the source of information when you are working with Oracle SOA Suite 10g. If the answer is not in there, there usually is a link to documentation that already exists. So apart from the title, I am very happy with this document. It might be a good idea to print it, 272 pages is a lot to read from a screen…

Read more...
Comments Off

Automated build & deployment in OC4J 11g

Lonneke Dikmans November 28th, 2007

Automated build & deployment is very important. Not only is it a condition for continuous integration, it helps prevent costly errors during development and build promotion.

Now pretty soon (hmmm, well, next year at least ;-) , we will have this new Oracle stack: Oracle Fusion Middleware 11g. A lot of improvements, not only in ADF and SOA Suite, but also in the management of the application server and the different suites. One of the downsides is that you need to rewrite (and maybe re-consider) your existing automated build and deployment solutions. A lot of stuff has changed, the JMX interface for example. I wondered about the ant tasks….

I decided to write a very tiny ADF BC application in JDeveloper11g tp2 and deploy it to the standalone OC4J11g (Preview). Right away I ran into a problem: the runtime installer does not work (yet). Luckily, Steve Muench wrote a technote that explains how to fix that. It is written in May 2007, for preview 1. In preview 2, some of the libraries have ‘disappeared’. If you are following the steps that are described in the technote, you can skip copying %JDEV_HOME%\BC4J\lib\adfrcutils.jar and %JDEV_HOME%\BC4J\lib\connmbean.jar; they are no longer there.

Next I needed some tool to automate the build and deploy process. Since the Oracle application server and SOA Suite support Ant driven deployment, I decided to go with that for the deploy tasks. I wondered if I could still use the deployment task from the previous version as described in the deployment guide for version 10g.

To test it, I deployed the ADF BC application to an ear file in JDeveloper11gtp (I will get to build tools later in this blog), and ran the following ant task:

<target name="deploy" depends="init" >
<oracle :deploy userid="${oc4j.admin.user}"
password="${oc4j.admin.password}"
file="${deploy.dir}/${ear.file}"
deploymentname="${app.name}-ear"
logfile="${log.dir}/deploy-ear.log"/>
<oracle :bindWebApp
userid="${oc4j.admin.user}"
password="${oc4j.admin.password}"
deploymentname="${app.name}-ear" webmodule="${app.name}-webapp"
websitename="${oc4j.binding.module}"
contextroot="/${app.name}" />
</target>

It works fine. The nice thing about JDeveloper11g is that the resources are project specific. This means that now the deployment profile for an ear file, will only take the connection that you need for this application. Not every connection that you have ever stored in the IDE.
Still, I don’t like to use the deployment profiles from JDeveloper. Managing the dependencies that are needed for your application(s) is really difficult. This gets worse if you have several different projects and workspaces. If want to do continuous integration you need ant or maven, or some other tool.
Ant soon becomes unmanageable when you have several artifacts and a lot of libraries. I had good experiences with Maven in the past, so I decided to have a go with Maven2.

There is a very nice post by Aino Andriesen on the Amis weblog. Unfortunately, the libraries that ADF uses have changed. This means you need to do some work to get them all listed in your pom.

  • create a directory structure as described by Aino
  • create an ant build file based on the project in JDeveloper. This will point you to all the jar files that are used by the webapplication. You don’t need to package all these files, these are the standard libraries needed to compile any ADF BC application
  • add the jar files that end up in the ear file generated by JDeveloper deployment profiles as dependencies to the pom
  • add the jar files to your local repository. You can use the following command for that: mvn install:install-file -Dfile=[path-to-file] -DgroupId=[group-id] -DartifactId=[artifact-id] -Dversion=[version] -Dpackaging=jar
  • add the ant deployment task with Antrun plugin

You are done. If anyone is interested in getting the pom, just leave a comment and I will send it to you. All in all not so painful after all!