Posts Tagged ‘Oracle’

Eliminating paperwork by combining digital imaging tools, content management systems and SOA

Ronald van Luttikhuizen November 5th, 2007

It was once said that the advance of ICT technologies such as e-mail would reduce the cost of handling documents and be beneficial for the environment. It would result in less printed paper, right? Everything would be done digitally, right? Well, it doesn’t seem to work that way. Even while technology exists to store most information digitally, lots of organizations still have an archive filled with all kinds of printed documents (invoices, orders, etc.). This is costly (you have to build, rent and/or buy archive space) and not really ‘CO2-neutral’. Especially in case documents are delivered electronically.

One of the related problems is that the process of electronically storing documents has to be compliant with a growing number of standards and laws. ‘Just’ storing documents manually on a file system won’t do.

In a customer case the following technologies are/will be combined to accomplish certified electronic storage of documents:

  • Scanners with OCR (Optical Character Recognition) software
  • Process orchestration using services
  • CMS (Content Management System)

How are these technologies combined?
Once documents arrive they are scanned. The OCR software outputs an image of the document and extracts metadata into an XML file. An automated process picks up the XML file, transforms its contents to a canonical data model and invokes a custom SOAP service, also passing the file location of the associated image. The invoked service then uses a Web Service API to store the image into a CMS database and uses the XML data to create and store metadata/attributes for the document.

Why are these technologies complementary?
While a CMS provides reliable and robust storage of electronic documents and provides multiple interfaces (both programmatic and UI-based), process orchestration and SOA implement traceable, auditable and robust processes governing the retrieval and storage of electronic documents. This in turn enables official certification in which stored documents are also ‘legal’ documents.

In this particular case Oracle products are used: the SOA Suite and Content Services (part of Oracle Collaboration Suite). But the same principal can of course be implemented using other technologies available on the market.

Read more...
Comments Off

J-Fall 2007 and session titles.

Lonneke Dikmans October 15th, 2007

On October 11th, J-Fall took place. Twice a year the dutch Java User Group (NL-JUG) organizes a conference. Sessions often have ‘real life’, or ‘in practice’ in the title. Often this is just a trick to attract people. The presentation that Martijn van Berkum (GX) gave about the Java content repository 2.0 was a pleasant exception. His session was titled: “Java Content Repository (JCR) 2.0 (aka JSR-283)”. He explained the specification very clearly, both the 1.0 and 2.0 version. Because GX uses it in their product WebManager he could share some real life experience with the audience. This, unfortunately, was not the case with “Real world usage of JBI”. Jos Dirksen knows a lot about JBI and Enterprise Integeration Patterns, but his presentation only had some code samples. That is not what I expect when the title says ‘Real world usage”. Project experience, examples of clients who used JBI and a specific product, is what I expect and want from a session like that.
The discussion “the Enterprise Architect confronts the Application Architect” also did not offer what the title promised, but this time I did not care. It was very nice to have a different format (discussion in this case). The subjects they talked about were very interesting and real. A session that delivered exactly what the title promised, was Duncan Mill’s presentation. The session was titled: “Controllers – The Next Generation”. He gave an overview (and did that very well, because he is an excellent speaker) of the different webframeworks and how these frameworks deal with the Controller in the Model-View-Controller pattern. If you are curious about PageFlow in ADF and how this compares with Spring Webflow and Seam, you can download the presentation in November from the NL-JUG site. Don’t forget to try the PageFlow stuff with JDeveloper 11 (technical preview). That is what I am going to do, too!

Bea SOA symposium

Lonneke Dikmans September 21st, 2007

Today I visited the Bea SOA Symposium in Amsterdam. It was a very well organized event, with a nice mix between customer stories (business case from Zwitserleven for example), partner stories and BEA product sessions. One of the interesting differences between the Bea SOA stack, and Oracle is the distinction between orchestration of business services and the orchestration or construction of composite technical services with BPEL-like tooling. In the Oracle SOA Suite, all process orchestration is done with the BPEL engine. If you have a business process with coarse grained services and workflow, you use BPEL. If you have a composite service, you define it with BPEL. I even heard someone argue once, that you should program user interface navigation with BPEL as well. Bea, on the other hand, offers two different products. Aqualogic BPM suite to model business processes and do BMP. WebLogic Integration to create composite services. This fits with a common notion that Massimo Pezzini also talked about: there are different types of process flows in an enterprise. In a way using two different suites appeals to me: you can map your tooling (development and administration) nicely to the different layers of process flows in your organization. This in turn, maps to the different skills needed to define the different types of processes. Business oriented people will feel more comfortable with BPM suite, technical (JEE developers) with WLI. On the other hand, it seems needlessly complex: Every time you design a process, you need to decide what tool to use. You need people that understand the BPM suite and people that understand the WebLogic Integration. You need to support and administer both platforms, pay licence fees etc.
If you have any thoughts on the subject, drop me a note or comment on the blog. I am very interested in ideas and experiences with both approaches.

Oracle BPA Suite tips: #3. Define a method filter

Lonneke Dikmans August 2nd, 2007

Now that we have installed the software (see my previous post, tip #2), it is time to start thinking about the modeling we will be doing. There are over one hundred models in the BPA Suite that you can choose from. This is nice: you can pick any model that you like. But this is also a pain: You have to pick a model you like! For example, to model a business process you can use EPC’s or BPMN. Usually when you like and know one, you don’t need the other. BPA Suite has a solution for this: Method Filters. BPA Suite comes standard with a set of these filters. If you open the administration view, and select ‘Configurations’, then select ‘Conventions’ you can click on ‘Filter’ and it shows all the filters that are defined for this database. There are two types of filters: evaluation filters and method filters. Here we are talking about a method filter. The predefined filters are:

  • Demo Database
  • Easy Filter
  • Entire Method
  • Extended Standard Filter
  • Oracle BPA Filter
  • Simulation Filter

The best way to define your filter, is to base on the models that are in a databse. Take to the following steps to accomplish this:

  1. Create a dedicated database, call it something like ‘method’ or ‘conventions’ or ‘reference’
  2. Sit together with the people that will be responsible for the models and decide on the groups, models, objects and attributes for the different layers in the architecture that will be used. Don’t add too many. It is easier to add something later than to remove it. Consistency is easier to maintain with a small filter than with a large filter.
  3. Add an example of every model in every layer.
  4. Create a filter based on the database content. Select “create” and select “create from a database automatically”. Fill in the other details

You are ready for the next step!

Read more...
Comments Off

XMLDB tips: #1. Show XMLType in SQL*plus

Lonneke Dikmans May 25th, 2007

Suppose you have an object type named EMPLOYEE_T in the hr schema and want to generate an XSD. This is standard functionality that is offered by XMLDB. You can execute the following statement:

select DBMS_XMLSCHEMA.generateSchema('HR', 'EMPLOYEE_T', 'employee') from dual;

The result is the XSD that is returned as an XMLType. Different tools have different ways of dealing with this.

SQL*plus
The result will only be partially visible.The way to solve this is to set the long size:
SQL>set long 100000 pages 0

SQLDeveloper
In SQL developer, you can select an XML document, it will display the entire document in one big line. You can view the entire document by clicking on the three dots (…) at the right hand side. When you copy this, pay attention: a lot of trailing whitespaces are included. We managed to downsize the document from approximately 3 MB to 150 kb, just by removing these trailing spaces!

JDeveloper10g
Unfortenately, this approach does not work in JDeveloper. If you execute the statement in a SQL Worksheet, it shows an empty cell as a result.

Oracle Spring Development Kit

Lonneke Dikmans May 12th, 2007

Today I downloaded the Oracle Spring Development Kit, or OSDK from OTN. The OSDK helps developers get started with Spring and JDeveloper. It provides three things: the Spring extension for JDeveloper to facilitate Spring development. Oracle Developer Depot to make it easier to install and last but not least tutorials and howtos. The samples contain the jar files you need from the spring framework. They used version 2.0.4 for this. OSDK does not ship with the Spring framework. So to get started, you can either download the Spring extension from the Update center, or install the one that comes with the OSDK. I decided to use the one that comes with the OSDK. To do this, simply put the jar in the [jdev_home]\jdev\extensions directory. Now let’s take a look at the extension.xml in the META-INF folder of the jar file. It has a classpath entry that looks like this (I shortened the reference to the extension home to make the line more readable):

library name="Spring 2.0"
${ext}/spring-framework-2.0.1/dist/spring.jar
${ext}/spring-framework-2.0.1/spring-aspects.jar
...

JDeveloper will create a library named “spring 2.0″ and show it in the list. If you want to use that, you should create a directory in the extensions folder and put the modules in like the classpath tells you to. Alternatively, you can ignore the xml file and create a user library.

I decided to put the jars in the extensions directory:

  • Download Spring
  • Create a folder named oracle.jdeveloper.spring2.06.11.23.01 in the extensions directory
  • Extract the spring framework you just downloaded to the folder you just created

I downloaded spring-framework-2.0.5. This gets ugly: I don’t want to point to a version of spring (in this case 2.0.1), and put jar files from another version (in this case 2.0.5) in the library. Besides, I might have a project using Spring 2.0.1 and another project using Spring 2.0.5 or some future higher version.

So I decided to take the other route: download the extension from the JDeveloper update center. This is much easier: it simply installed the Spring 2.0.1 files in the extensions directory.
Of course, if you want to use a newer version of Spring in your application, you can create a user library and put that in the project libraries.

Now you are ready to start using the features of the Spring extension. Remember to use the XSD style definition in your applicationContext.xml. For a list of cool features take a look at OTN.

Another part of the OSDK is ODD. This is a nice feature that allows you to easily install samples from OTN to your local OC4J instance. It uses Spring as a container. Installation is simple

  • Start OC4J
  • Install the odd ear with the application server control console
  • Open a browser window to http://[host][port]/odd

Log in to your OTN account and just start installing the samples that you like. It is as easy as that!

Alternatively, you can deploy the samples that are packaged in the OSDK yourself with Ant or JDeveloper. All in all a nice starter kit to start using Spring in your day to day work.

Read more...
Comments Off

JavaOne 2007- scripting day

Lonneke Dikmans May 11th, 2007

Yesterday I focussed on SOA, today I decided to make it a scripting day. Like last year, scripting is a hot topic at the conference. There are several reasons for using a scripting language: it is dynamic, it is easy to write and very very cool. So I decided to have a go at the Lab “Dive Into script programming on the Java platform”.
There were seven exercises, that you were supposed to finish in 2 hours. For something so easy and cool, that seemed like plenty of time.
The machines were preset up with netbeans and all the necessary modules installed.
The exercise started with some java script calling java classes from within the engine that comes with the JDK 6. You can open a command prompt and call jrunscript and start typing.
For example the following will display the date:

js>date()

You can also create Java classes, for example to create a file, type the following code:

js>var file = new File("test.txt")

You can now manipulate the file, call methods, use introspection etc. Strangely enough, you do need to import java.lang and all the others, but not the java.io package. So if you want to create a JFrame you use the following code:

js>importPackage(Packages.javax.swing)
js> var frame = new JFrame("testFrame")

The next exercise showed how to use javascript in your Java code. Basically what you need to do is create a ScriptEngineManager for the scripting language you want to use. Then you create an engine and evaluate the script.
Suppose we have the following Javascript:

function hello(){
println("hello world")
}

Then you call this from your Java class by creating the following code:


ScriptEngineManager mngr = new ScriptEngineManager();
ScriptEngine engine = mngr.getEngineByExtension("js");


engine.eval(new FileReader("hello.js"));
if(engine instanceof Invocable){
Invocable inv = (Invocable)engine;
inv.invokeFunction("hello", (Object)null);
}

It took me a while to get the hang of it. I don’t know Javascript and I only use NetBeans at JavaOne labs. The lab was two hours and I spent most of it trying to figure out the javascript syntax and the netbeans IDE. I never got passed exercise 2. This shows your productivity drops considerably if you need to use a tool that you are not used to. I liked the setup of the lab though, it had some simple copy paste exercises, but also exercises where you had to think about what you learned so far.

I decided to retry the same thing with JDeveloper11g Technical Preview.
I created a new Workspace and a project and imported the code from the lab into the project. JDeveloper offers code completion for javascript and even shows Icons for FireFox and/or Internet Explorer, whatever is applicable. Sure enough, after a couple of minutes, I had everything up and running.

After the lab, I went to the panel about SCA, where David Chappell represented Oracle. It was an interesting discussion. The audience could ask some questions and came up with some real world examples where SCA would have been of help. The conclusion of the moderator (also named David Chappell), was that if a vendor claims it supports SCA, you should ask “What do you mean”. This because it has several aspects: a programming model, and a way of creating composite services. Then there is also SDO that can be used in conjunction with SCA. The other conclusion of the session, mainly from Sun, was that not every part of SCA was going to be picked up by the development community.

After that is was time for some more scripting. The session “Creating Manageable Systems with JMX, Spring AOP and Groovy” was interesting: I did not know that Spring 2.0 supports scripting languages. I am not sure I agree with the presenter that it added value to use Groovy in this case, but the aspects to intercept events in the application and monitor it with JMX certainly made sense.

Apart from the new IDE experience, I had a culinary experience today as well: I skipped the after dark bash, and went to the 21st Amendment with some friends; we had a very curious pizza: topping with bbq sauce. To my surprise it tasted very well!

Read more...
Comments Off

JavaOne 2007- Service Oriented Architecture

Lonneke Dikmans May 10th, 2007

One theme that is of particular interest to me is SOA. Yesterday I went to a session about the Java API for RESTful Web services, a.k.a JSR 311. REST is a very interesting alternative to SOAP services, especially when used from web applications. REST has three major concepts:

  • Resources that are identified by an URI
  • Methods, a small fixed set for resources
  • Representations, that embody state.

The application protocol for REST is HTTP. The specification is still in its very early days. There are still some issues that need to be resolved:

  • Annotations versus classes or interfaces. Annotations are easy for Java developers but are not supported by most scripting languages.
  • Resource lifecycle. Will it be per request, per session or a singleton
  • Container versus API support. Security could be solved by the container, or by the API.
  • Other language support.

The API will change a lot, but you can already take a sneakpeak in the SWDP. We will have to wait and see if the API will be useful, there has been some discussion on the internet since the JSR was proposed.

I also managed to visit a BOF: How to Integrate your Order Management Solution in a Service Oriented Architecture. This was also about an API, for Order Management systems: JSR 264. Order Management systems are often used together with Inventory Management Systems or CRM systems. In those environments it can be very useful to use a standard way of building an Order Management. It was an interesting session, and great to see Gero do a presentation at JavaOne!

Oracle announced today that they will donate the rich client components to Trinidad. They also announced the Oracle Development Kit for Spring, and showed a preview of the implementation of SCA in the SOA suite. Last but not least, the new acquisition Coherence was showcased.

I visisted a session about JBI that was very informative. They talked about BPEL, SOA and the different use cases for BPEL, like the title promised. But the competing standard SCA was completely ignored. OpenESB is a standard that is certainly worth investigating. If you are interested, take a look at the website.

The session that I liked best today was “Decorating your SOA Services with Governance Enforcement Contracts”. The session painted a very clear picture of Sun’s vision on Governance, and why it is important. They are working on the SOA Governance Framework that is based on standards like WS policy and uses aspects to program the different types of governance you might want to define. Unfortunately it was not clear when it would be available, but it is certainly something to keep track of.

I ended the day with the Oracle sponsored Spiderman 3 movie, that had lots of bad guys and webs. No services though….

Read more...
Comments Off

JavaOne 2007- statistics

Lonneke Dikmans May 7th, 2007

I am very excited to be at JavaOne. I love San Francisco, and I enjoy talking to people from different countries and companies about Java, and new cool stuff. It is always very difficult to choose your sessions: last year I ended up being totally sick of AJAX and web 2.0 because I went to too many of those sessions. This year, I picked a lot of SOA and integration topics, I hope I am not falling into the same trap. To get an impression of the overall conference I did a little research using the Schedule Builder.

General Numbers
In total there are 388 sessions. There are different types of sessions:

  • technical sessions: 251. The core of the conference.
  • business sessions: 5. This number suggests that is not really a big thing for Sun
  • communityOne sessions: 0. This is a new type, related to the open source Java initiative. I signed up for it, but it is totally unclear to me what to expect. I will let you know what happened.
  • Birds of feather (BOF): 117. These are mainly in the evening. Some of them are very interesting like the one from my former colleague Gero Vermaas, he is doing a presentation titled “How to Integrate Your Order Management Solution in a Service-Oriented Architecture”. I registered for the session. I hope I can make it: last year I was too tired to visit any of the BOFs…
  • Hands on Labs: 15. I always like those: it gives me chance to have a look at netbeans (something I have never used in a project) and a feel for a specific topic or technology.

Of course the conference is dominated by Sun: they decide on the tracks (Consumer technologies, Desktop, Java EE, Java ME, Java SE, Java technology business day, Java technology in tv, open source, the next generation web and tools & languages) and they make a selection from the abstracts that are submitted. It is interesting to see what topics Sun thinks are hot.

Integration

Of the 388 sessions in total, there are 35 in the Services and integration track. There are a lot more sessions about SOA than about EDA. An equal number of session mention BPEL as there are sessions mentioning JBI:

  • SOA: 35
  • EDA: 3
  • JBI: 9
  • BPEL:10
  • XML: 42
  • SOAP:14
  • Web services: 47
  • JMS: 6
  • ESB: 7
  • WS-*: 4

Java SE & Java EE
Another topic is Java SE. There are 67 sessions in this track. This is the biggest track of all. Of course I will be attending the worlds most famous and best quiz: the Java Puzzlers with Joshua Bloch. I am not sure what the trend or hot topic is in this track, maybe scripting? I will have to visit some of the sessions to find out ;-)
Java EE has 56 tracks. That is less that in the Standard edition track. This is surprises me, but maybe a lot of the Java EE tracks ended up in the integration track?

Open Source

There are 35 in the open source track, quite a few (4) about OpenJDK, 20 sessions mention Spring. This contradicts the prediction of some people that Spring has become obsolete since EJB 3.0 and JEE 5: I am happy to see that they are wrong!

Web 2.0 & Scripting

Seeing the numbers so far: I can’t help wondering what the new trend in Java is according to this conference. It is not integration, Open Source or enterprise edition then it must be Scripting and web 2.0…..
There are 42 session in the “Next Generation Web” track:

  • Scripting: 18
  • JRuby: 8
  • JavaScript: 34
  • Ajax: 57 (!)
  • JSF: 4
  • Web 2.0: 30


Other tracks

Java ME is pretty big too: 59. Last but not least there are 47 sessions in the tools and languages track.

Companies

The last thing that I was curious about were the companies that are participating. I searched for the following:

  • Sun: 200
  • Oracle: 13
  • IBM: 14
  • Bea: 7
  • JBoss/Red Hat: 15
  • Interface21: 6
  • Eclipse Foundation: 5
  • Nokia: 11
  • Google: 16
  • Yahoo: 1
  • ThoughtWorks: 3

Obviously there are more companies, but these are the one I was interested in…. I am not sure what it tells us, except that JavaOne is very much a Sun conference. That is the advantage of conferences like the ServerSide or JavaPolis, these reflect the trends and thoughts in the Java development community more than the strategie of one company.

Conclusion
Looking at the numbers, I would say that web 2.0 and Ajax are still a major topic/trend. We will have to wait and see, if the visitors of the conference agree…

Read more...
Comments Off

Oracle BPA Suite first impressions

Lonneke Dikmans March 2nd, 2007

Enterprise architecture should be based on business drivers and strategy, constraints from the organization like budget and time, and architectural principles. When you model an architecture for a product or project, the same thing applies. It is important that the proposed architecture reflects business drivers and adheres to certain principles.
There are several tools available in the market to design or model architectures and applications. A modeling tool should be practical and help you reach your goal. To be helpful it should have the following characteristics:

  • It should adhere to standards (like UML, BPEL, XMI)
  • It should be possible to trace relationships between different perspectives (functional, data and application, technical for example) and between the architecture and the business strategy, and stakeholders and concerns.
  • It should be easy to learn and easy to use
  • It should be possible to publish (parts) of the model to html or rich text format, to communicate with the business and IT people
  • It should be possible to import and export the model to other tools, to prevent vendor lock-in

The tool I have been using the last year and a half is Enterprise architect. It adheres to UML (not BPEL or BPMN), generates reports in html or rtf and is easy to use and to learn. It works well in JEE environments, supports reverse engineering and mda and is not very expensive.

Until recently, all Oracle had to offer was Designer or JDeveloper to model.
The problem with Designer is that it does not adhere to standards like UML and BPEL or BPMN. It is very good fit for projects and organisations that use CDM or CDM fast track and have traditional monolothic applications. It is not very useful when you are in a JEE or service oriented architecture environment. There are a lot of options and fields you can fill out. This makes it hard to learn. Once the model is in Designer, you can’t export it to another tool anymore, nor can you communicate it easily to the rest of the business. All you can do is export it to another repository or generate the fysical datamodel, PL/SQL code and or forms application.

JDeveloper on the other hand, adheres to standards like UML, XMI, BPEL and ERM. The problem is that there is no way to link different models together or publish the model in a webpage or report. It has limited possibilities which makes it easy to learn, but not always easy to use. JDeveloper is useful as a design tool for certain modules in your application, not to model the entire application or enterprise architecture.

At Oracle World, Oracle announced they added a new suite to the Fusion Middleware toolbox: Oracle BPA suite. It is marketed like this: “Oracle Business Process Analysis (BPA) Suite speeds process innovation by rapidly modeling business processes and converting them into IT executables. Oracle BPA Suite, based on the market leading IDS Scheer ARIS Design Platform, delivers a comprehensive set of integrated products that allows business users to design, model, simulate, and optimize business processes to achieve maximum operational efficiency. ” To me that sounded like a tool that limits support to BPMN, BPML and BPEL. JDeveloper already supports BPEL, so I never bothered to try it. If you look at the roadmap and overview of the suite, it also looks like a very process oriented tool.

Last week, we were looking into several options for modeling an architecture and we decided to have a look at the BPA suite. To my surprise it supports much more than just business process analysis. It allows you to model business objectives, application architecture and several other aspects of the architecture using different methods and standards (UML, BPEL, BPMN, etc).
It is very easy to install: you double click the setup.exe and then all you need to do is “next”, “next”, “next” and within half an hour or so you are up and running. It uses a database as a repository, so it might not be very easy to integrate with repositories, versioning systems or document management systems in your enterprise.
It can import and export in XMI, save diagrams in emf, and generate reports concerning consistency and violations of rules. It also has a publisher component which publishes the content to communicate with the rest of the organization.

The way the integration with JDeveloper and the development process is pictured in the road map, seems very complex to me: have a look at Scott Amblers site about agile modeling, before you get lost in this new and cool modeling suite and forget what IT is all about: adding value to the business. In some situations all you need is a whiteboard or a pencil and some paper….

But if you do need a tool: don’t forget to take a look at the BPA suite!

Read more...
Comments Off