Monday, November 30, 2009

myfear's tweet cloud

I just created my first tweet cloud. Interesting to see, what I am talking about since one year :)

words (ordered by most used)
oracle, java, glassfish, blog, server, weblogic, primefaces, 2009, enterprise, news, software, love, time, post, thanks, code, germany, keynote, openworld, jee6, hope, sessions, available,coffee,meet,running,google,moment,days,project,cloud

cloud

Monday, November 23, 2009

Enterprise Modules Project (Gemini), oracle, springsource and weblogic server

This happened three days ago. SpringSource and Oracle proposed the Enterprise Modules Project (Gemini) to the Eclipse community, whose primary goal is to provide access to standard enterprise technology implementations within a modular framework. The project will include important OSGi EEG implementations (Blueprint Service Implementation and Web Container Integration) contributed by SpringSource as well as contributed code by Oracle. All sub projects will be consumable as modules (or OSGi bundles) and will provide implementations for important and popular enterprise standards.

Up to now, there is no official feedback available in the community forums. Even if the announcement did fire up some press comments (google.com. You can find the SpringSource press release here.

The overall lead for the project is Mike Keith. The project mentors are Wayne Beaton, Doug Clarke and Adrian Colyer.

Gemini is organized under 6 subprojects:
* RFC 66 — Web Container
* RFC 98 — Transactions
* RFC 122 — Database Access
* RFC 124 — Blueprint Services
* RFC 139 — JMX Integration
* RFC 142 — JNDI Integration
* RFC 143 — JPA Integration
* RFC 146 — JCA Connector Integration

As you can see, some important JEE specs are still missing (e.g. EJB & JMS).

Most notably, this project would continue the recently presented invests taken by Oracle in OSGi and a WebLogic DM server. It could lead to a defined standard ways of building and running enterprise technologies (such as Java EE) in OSGi. The EEG has a wide participation: beside Oracle and SpringSource you can find IBM, IONA/Progress, Tibco, ProSyst, Siemens and LinkedIn on the list.

On a midrange timeframe both technologies could grow together. While Java EE defines a suite of application-level APIs, OSGi specifies the infrastructure obligations, needed running them. With the power of OSGi some of the many existing Java EE issues could be solved:
* Application versioning
* Facilitates application module reuse
* Hot upgrades/patches

So OSGi could be the enabler for the next generation of Java server infrastructure.

The GlassFish Experience (german)

Here are the slides from my doag conference session about Sun's GlassFish.
Only available in german:



Opening Slide CC:

Tuesday, November 17, 2009

Enterprise grade JSF component libraries and how to find them

It is quite obvious, that there is a still growing number of jsf component libraries out there. The most popular ones are compared on my favorite site www.jsf-matrix.net.
Working with clients in everyday projects I sometimes need to make a proposal for one or the other library to use. But what are the decision making points on this? What does "enterprise grade" really mean?
Even if I am not going to present a complete evaluation report about JSF libraries here, I will try to introduce my approach in finding enterprise-grade JSF component libraries for customers. And further on, I will try to have a more detailed look at three component libraries I choose to evaluate in customer situations quite often.

Definition: enterprise-grade
My first try was to find out about the definition of enterprise-grade. The wikipedia keeps silent about this. No article about this does exist. Ok. Some googling does return more results. Anyway, as silently allready expected,
you will not find a definition anywhere. In a 2008 TSS Discussion, Ed Burns talked about Enterprise Grade Ajax and JSF already. He defined it as follows:

[...] something that is robust, scalable, well tested, and industry proven.

General evaluation approach
Evaluation Criteria
If you compare the customers needs to Ed's keywords, you obviously find some missing parts. Resorted and completed it could lead to a list like the following:

- robustness
- scalability
- testability
- # of available components
- browser support
- development tools support
- professional support
- # of industry references
- size of the community
- software quality
- documentation (size/quality)
- # releases per year
- avrg time for bugfixing
- customizability
- licensing
- avalable since

This is still a very limited list and could be expanded, to the customers needs. But to me it seems as if this are the most interesting points to evaluate if you are looking for an enterprise-grade product. Having special platforms or environments in place, you could even think about defining categories (non-technical, technical, enterprise, strategic and so on..)

Candidates
Collecting the criteria is the first part. Next step is to identify the candidates to evaluate. Sometimes this is also called a shortlist. There are some pre evaluation suggestions around. To me it is most valuable to define some necessary and sufficient conditions and only discuss those libraries meeting the sufficient criteria. In most cases it should be perfect to work with up to five different libraries in the comparisson. For each of them you have to do the criteria evaluation.

Cost-utility analyses
If you have your criteria and degrees of fulfilment in place, you should do your analysis. There are some more or less common approaches in place to do this. A more general description could be found here. The german articel in the wikipedia is more complete and also defines some functions as guidelines.

Personal shortlist
Looking at the jsf-matrix again is a perfect starting point for building a shortlist. My personal shortlist is influenced by what I know from my customers and their requirements. Therefore I have chosen the following three:

- RichFaces
RichFaces is a component library for JSF and an advanced framework for easily integrating AJAX capabilities into business applications.

- Oracle ADF Faces
Oracle ADF Faces Components is a set of over a 150 Ajax-enabled JSF components that let you build a richer user interface for your Java EE applications. Oracle ADF Faces also includes many of the framework features most needed by JSF developers today.

- PrimeFaces
PrimeFaces is an open source component suite for Java Server Faces featuring 70+ Ajax powered rich set of JSF components. Additional TouchFaces module features a UI kit for developing mobile web applications.

Criteria fulfillment
Here are some examples derived from the product's websites and communities for selected criteria.

RichFaces Oracle ADF Faces PrimeFaces
# of available components 100 150 70
development tools support Jboss Tools JDeveloper none
professional support yes yes none
size of the community
(members forum)
14.498 3600
documentation
(size/quality)
lots/ok lots/ok avrg/ok
# releases per year 3 - 4 1 >6
avrg time for
bugfixing/days
60
customizability skins skins skins
licensing LGPL Commercial Apache License
avalable since 2009

Conclusion
As you can imagine, it is not too easy to gather all those informations. In some cases it could be a solution to prepare a request for information and send it out to the vendors in order to have your questions answered.
Before you choose a component library it is best to have a very good understanding of what it is capable in general. Most notably you can only combine selected libraries with each other. Therefore, you should wisely take the component suite, best fitting your projects needs.

Friday, November 13, 2009

WLS 10.3.2.0, JScaLite TechPreview .. examples ... broken :(

Released only yesterday and now on my harddrive. The WLS 10.3.2.0 (Oracle WebLogic Server 11g R1 Patch Set 1).
Beside the fact, that the release notes are missing and the documentation is not updated to the latest version, everything looks quite the same.
There was time for me to look at the Technical Preview Parts of the Oracle Weblogic SCA implementation called JScaLite.
As a more or less frequent reader of my blog, you know, that I like to work with the provided samples. They are basically a good start for understanding new features and provide a basic skeletton for your own trials.
Shipped with the WLS 10.3.2.0 you can find a sca example. It is based on a shopping cart application. The following figure (taken from the examples documentation) explains the high level architecture:



This example demos the most important features of JscaLite container. The demoed features include:

•EJB 3.0 Service Bindings
•Web Service Bindings
•EJB 2.0 Reference Bindings
•EJB 3.0 Reference Bindings
•Web Service Reference Bindings
•Default Binding
•JSCA Binding
•Local Reference Resolution (References to services that are part of the same JSca application)
•JSCA application deployment / undeployment

Ok. Let's start over again. First step is to install the package. After you downloaded the 815 MB installer (windows) you are guided through the installation process, as usual. After that, you create your domain and start adjusting the example.properties (%SERVER_HOME%\wlserver_10.3\samples\server\examples\src).
Now you should setup your environment variables (setDomainEnv.cmd is a good start) and start building the examples (ant build).
Up to this, everything works fine. If you try to deploy (ant deploy) you come across some problems:
- the build.xml does not make use of the example.properties => change it
- the deployable library for sca (weblogic-sca-1.0.war) is not deployed => deploy it
- the weblogic.xml dd does not point to the correct library => change it

So far, so good :) Anyhow .. this is where the little journey ends. From now on, I did not manage to fix the remaining issues.

you get a
java.io.FileNotFoundException: class path resource [META-INF/spring-sca.xsd] cannot be opened because it does not exist

if you try to deploy it. Even providing the file within the WEB-INF/classes/META-INF/ this does not solve the problems. A redeployment, ended up with a


org.xml.sax.SAXParseException: cvc-complex-type.2.1: Element 'sca:service' must have no character or element information item [children], because the type's content type is empty.


Played around a bit with different approaches and finally gave up on this. If anybody got this working ... let me know.

Oracle WebLogic Server 11g R1 Patch Set 1 available (WLS 10.3.2.0), contains JScaLite!

The Patch Set 1 release of WebLogic Server 11g Release 1 was release yesterday. Up to know, there is no detailed readme or my oracle support information available about the contained bugfixes.

This Patch Set includes a Technical Preview of WebLogic SCA. When Oracle introduced the new version of the Oracle SOA Suite 11g, it introduced a new abstraction layer, the Service Component Architecture (SCA). The SCA can be seen from a technical point of view, as a container that holds a set of SOA components. These components interact with each other and can be exposed to the outside world as a service. The components itself can call external services, these are called references. In WebLogic SCA, you can write Java applications using Plain Old Java Objects (POJOs) and expose components as SCA references and services, using SCA semantics configured in a Spring application context. WebLogic SCA applications run in WebLogic Server (via the WebLogic SCA Runtime) and can be used as components in Oracle SOA composites. You select the SCR Runtime during installation.

The runtime itself is called JscaLite and is JscaLite a lightweight Spring 2.5 (or higher) SCA container for standalone WLS. JScaLite aligns itself with the Spring C&I specification 1.1 except for SCA Properties.

Download it directly from Oracle
You can find the online documentation here.

Wednesday, November 11, 2009

Oracle TechCasts from OpenWorld 2009 about WebLogic Server online

Justin Kestelyn posted audio versions of the Oracle OpenWorld Live "TechCast" chats

Oracle TechCasts are audio podcasts, hosted by OTN's Justin Kestelyn, with technical experts about new tools, technologies, and trends in application development.

The following two are most relevant for WebLogic Server.

Nov. 9, 2009, Oracle OpenWorld Live 2009: Oracle WebLogic Server Looks Toward OSGi
Senior Director Product Management Mike Lehmann details the recent history of WebLogic Server development and also looks toward the future, to OSGi and virtualization.



Download mp3

Nov. 9, 2009, Oracle OpenWorld Live 2009: Oracle WebLogic Server On Tap from the Private Cloud
Product Manager Bill Dettelback explains some of the ways Oracle WebLogic Server can and should be deployed to private clouds in "platform as a service" (PaaS) mode.



Download mp3

Tuesday, November 10, 2009

profound misunderstanding

The European Commission has issued its formal "statement of objections" over Oracle's planned acquisition of Sun Microsystems, Sun said in a regulatory filing Monday.
Up to now, this statement was not published anywhere and is only available from Sun written in a letter to the SEC.

Oracle published a statement to this yesterday.

The Commission's Statement of Objections reveals a profound misunderstanding of both database competition and open source dynamics.

While we are all waiting for the EU to change their minds and do their homework, I asked Duke to try on his new hat:) And I guess, he likes it :)


Friday, November 6, 2009

Done is the engine of more.

Ralf Westphal (Blog/Twitter) pointed me to this one. Done by Bre Pettis (Blog/Twitter)
To be honest, I was first smiling about this one and only retweeting it. After some time, I decided to print it and put it on the wall of my office. Not only, cause the poster looks awesome, but mainly because of the attitude described in the manifesto. Ok, it is exaggerating and a provocation. But as always, there is some truth in it at least. I don't know why, but it seems to me, that more and more people are afraid of "getting things done". Since the beginning of the so called "financial crisis", it seems to me that more and more people try to reach safe harbors. Not condemnable by default. But I feel, that in a growing number of situations this is slowing everything down.

Therefore I use this poster to remember some things:
- There is a difference between talking about and doing things. (I prefer doing things!)
- If you don't do it, probably no one else will do it. (You can do it!)
- You are responsible for yourself. (Don't hide! Stand up for your opinion.)
- Innovations are necessary parts of success. (Embrace change!)
- Making mistakes but learning from them is ok. (I do make mistakes, too. Mistakes, are vital to learning!)
- What you wish to ignite in others must first burn within yourself. (Be yourself. Be enthusiastic!)
- Getting things done is a personal success. (It feels good!)
- If you get work done, more work will come to you. (Done is the engine of more.)


Wednesday, November 4, 2009

JEE complexity, documentation, pruning - some analyses and thoughts

J2EE applications can be rapidly deployed and easily enhanced as the enterprise responds to competitive pressures.
(Source: Sun Microsystems Inc.: J2EE Specification)

I am working with JEE6 these days. Try to design some new tech-workshops, sessions and lessons to bring others up to speed with this. During my research I cam across an old slide which talks about total complexity (in number of specification pages). Up to today it only covered J2EE 1.0 until J2EE1.4. But I needed to know more about the actual specifications JEE5 and JEE6. Ok. It was time to browser the jcp website and look out for the details.
The result was unexpected. After having seen so many people complaining about the complexity/size of the J2EE if was finally heard by the Specification Leads and the JEE5 was launched with a slightly different goal than the J2EE specifications before:

The focus of Java EE 5 is ease of development. To simplify the development process for programmers just starting with Java EE, or developing small to medium applications, we’ve made extensive use of Java language annotations that were introduced by J2SE 5.0.
(Source: Sun Microsystems Inc.: JEE5 Specification)

But as you can see, compared to the other versions it is the most complex one regarding to the total number of specification pages. Seems as if the fundamental work for simplyfing the platform itself comes to fruition with JEE6 finally.



The graph itself is reduced to the core and well known APIs. This is a little more than half of the complete platform documentation for JEE6. The complete documentation consists of about 6300 pages (some release notes are not considered with this number).

What else is to mention:
- You see the JSF specification comming in with JEE5. About 450 pages of specification, that were added. Slightly reduced to 400 with JEE6.
- The size of the umbrella specifications was reduced. JEE5 (JSR-244) has about 80 pages of specification more than JEE6 (JSR-316).
- Both JSP versions does not include the Expression Language parts. This would add another 122 pages of specification. JSTL (272 pages) is also not part of this number.

One of the major goals of industry standards is the backward compability. This could be seen in the chart, too. As more and more specifications come in, the old ones still are not beeing dropped even if they are considered as not beeing state of the art anymore. A good examples of this is CMP. Removing the dead parts of APIs, outdated features and not well supported parts is something that will have more attention in the future. The JEE6 already introduced a concept for getting rid of this ballast, called prunning. Based on the community votings, some APIs will disappear from JEE7.

The Oracle ACE Program

I recently was asked, what the Oracle ACE program is all about. I finaly decided to collect some public information and share some thoughts about this.

The official wording about the program:
The Oracle ACE Program is designed to recognize and reward Oracle customers for advocating Oracle Technology and Applications. Oracle ACE recipients are chosen based on their significant contributions to, and activity in, their respective community. The program currently has two levels: Oracle ACE and Oracle ACE Director.
(Source: Oracle ACE Program FAQ)

Oracle ACEs and Oracle ACE Directors are known for their strong credentials as Oracle community enthusiasts and advocates, with candidates nominated by anyone in the Oracle Technology and Applications communities. The program comprises two levels: Oracle ACE and Oracle ACE Director. The ACE () designation is Oracle's way of saying "thank you". This is to honor the efforts of community contributors. A "thank you" both from Oracle and the community (OTN) to let them know, that they appreciate their enthusiasm.
The ACE Director () designation is for community enthusiasts who not only share their knowledge, but also want to increase their community advocacy and work more proactively with Oracle to find opportunities for the same.

A fellow ACE Director Debra Lilley caught the point like this:
I believe, and I stress this is my understanding that the ACE program has 2 sides to it. You must be a leading expert in your area AND you must contribute it sharing that knowledge, through speaking at conferences, participating in forums, authoring of books etc. Just because you are an expert in an area is NOT enough.

You can find an ACE by looking at the ACE Finder. At the time writing this, there are 230 listed ACEs and ACE Directors.

Beeing a BEA Technical Director since 2005 I was asked to join the ACE Director Team in 2008 after the Oracle/BEA merger. It is an honor for me to be part of the ACEs. So many great people, thoughts and ideas together in one place is always very inspiring. I had the pleasure to talk to some in person and they are all real people which work hard on real world solutions for their real world customer problems. If you come across one of us, don't stop asking questions. We are here with some answers!

Links around the ACEs:

Monday, November 2, 2009

Twitter Search in #weblogic console

A need to have "toy" for all twitter addicted WebLogic admins out there :-)
This is a quite lean console-extension, that searches for the #weblogic hashtag on twitter and displays it's results on top of every page of the wls admin console.

This example again makes use of JTwitter 1.2.
Download the war file and drop it to your domains console-ext directory.
If needed, add -DproxySet=true -DproxyHost=proxy -DproxyPort=1234 to your setDomainEnv scripts JAVA_PROPERTIES.

Now restart the server and access the console via http://host:port/console/



If you don't want to console to be deployed everytime you access it, you should switch of "on-demand deployment of internal applications". (Your domain => Configuration => General.

Howto write your own console-extension:
Have a look at the Extending the Administration Console for Oracle WebLogic Server Guide (PDF) and give it a try.

Brief summary:
- Setup WAR Project with your fav IDE
- Create ext_jsp folder
- Create portlets folder
- Create WEB/INF/netuix-extension.xml file
- Create portlets/yourPortletFile.portlet
- Create ext_jsp/yourJSPpage.jsp

As you might have guessed, this is a realy simple example. Only one JSP. No backend logic at all. You might think of different enhancements. But there was no time left for me, trying this out.