dev2dev> WebLogic Server 9.0: JMS Enhancements

WebLogic Server 9.0: JMS Enhancements by Michael Hart — BEA WebLogic Server 9.0 offers enhanced JMS support, including a unit-of-order feature, flexible persistent stores, and queue browsing. Read an overview of these new features in this article by Michael Hart.

WebLogic, Weblogic 9, JMS

BEA offering ‘certified’ version of Spring and Blueprint application

I’m sure you heard that BEA announced a certified version of Spring that’s designed to work with WebLogic at BEAWorld 2005 in Santa Clara, CA. Obviously any version of Spring will work on WebLogic, but this version of Spring has been tested on WebLogic – Another piece of news in this package is the delivery of the sample application MedRec. The MedRec applicaiton has been rebuilt from its traditional J2EE (EJB-centric) form to a Spring’ified version that is also designed to act as a blueprint or best-practice application for developing Spring applications on WebLogic

The Spring-on-WLS package also includes the WebLogic console feature to enable real-time management of Spring beans. (via SpringFramework.org)

BEA has been very active in the open-source community. They’ve supported efforts like Beehive, XMLBeans, AspectWerkz, among others and so they are I think this embracing of open-source technologies (with support) is a really smart move by BEA. Some are calling it a desperate move, but I think it’s a fairly strategic move. In addition to their support for Spring and other open-source frameworks, the purchase of M7 will really bolster their Eclipse-based tools offering and allow Workshop to become the premier development environment for WebLogic and maybe other J2EE containers as well. A company ignores open-source at their own peril and it’s nice to see a billion dollar company get really behind open-source and drive innovation back in the FOSS community. The reality is there are quite a lot of billion dollars company out there running their infrastructure on a lot of open-source software.

BEA, WebLogic, Spring, MedRec, BEAWorld, open-source, FOSS, M7, Workshop, XMLBeans, Beehive, AspectWerkz

dev2dev: Spring Integration with WebLogic Server

Spring Integration with WebLogic Server by Andy Piper, Rod Johnson, Chris Wall and Nick Tran — WebLogic Server 9.0 provides a platform for enhanced management, ease-of-use and scalability of Java applications. The Spring Framework enables a simpler, POJO based, approach to J2EE development without sacrificing the power of the platform. This article describes the synergy of these two systems, and introduces the Spring on WebLogic kit.

Weblogic, Spring, POJO, J2EE

BEAWorld 2005 SOA Keynote Panel Discussion

I had the pleasure to participate in Keynote SOA panel discussion at BEAWorld 2005 in Santa Clara. If you’re interested in watching the entire keynote, it’s available online here. To get to the good part, skip ahead to around 2:38:00. :) We had a general idea on the topic we were going to discuss and so I have put down some thoughts about the questions and topics in general. Given that we didn’t have a lot of time during the keynote, I didn’t get an opportunity to make all my points. And so here are the additional thoughts I probably would have convened, had we had more time.

1.What are some of the challenges that developers face in implementing Service-Oriented Architecture?

There are a lot of challenges facing developers and organizations that are in the process of implementing Service-Oriented Architecture. Being a technical person, the technology part is easy and most developers and architects in the audience would agree. One of the biggest challenges a lot of SOA efforts run into is the lack of business alignment. If your business partners are not involved and you treat this as just an IT project, your chances of success are fairly limited. The biggest benefit of an SOA is that it allows a business to be agile and nimble and respond quickly to changes in market condition, mergers and acquisitions, competitive landscape and regulatory or compliance changes. So SOA’s should be seen as business drivers and not just a technology project. Another big challenge a lot of IT organizations face is that they need to shift from creating implementation-specific functionality or silos and move to creating standards-based services.

Another challenge is the upfront costs – Organizations will have to invest in tools training, process and organization changes. Part of the organizational change is the whole governance effort. If your organization has dedicated line-of-business development teams, you will need some new organizations structure to provide technical leadership to bring these teams together and focus on the global business issues. Governance is usually the part that makes or breaks a SOA effort. Different development teams aligned with their individual lines of business have their own set of priorities and deadlines. They usually need to be convinced that the bigger picture view of the Enterprise is just as important as building or leveraging services is in the overall interest of the business. There isn’t a tried and true approach to getting SOA in your organization. In my case, I went to my CIO and his management team about 3.5 years ago and they gave me their blessing to move forward. But working for a Financial Services company also meant that IT-spend was really tight due to the horrible market conditions. So I took the approach of starting small and creating 1 simple service that became our killer-app. I implemented something we internally call the ‘Security Framework’ – The Security Framework was written in Java with an stateless EJB as a façade and you can could call the EJB directly or call the Web Service or use the Axis and WebLogic client I had created. The Security Framework taped into most of the authentication stores inside our network and so applications that were using the service could switch their authentication from a database model to Active Directory without any coding changes. If we implemented another authentication mechanism, the service would code that and not require all the clients to do anything. The service also offered roles or authorization and auditing functionality and so the developers were compliant with our internal authentication, authorization and auditing standards as they use this centralized service. Since then, our SOA effort has blossomed and we have a lot more services but we are not at a place where we need an ESB – We are in the early exploratory phase of the ESB to see if we need any of the services provided by a service bus.

Another big challenge is that there are very few mature SOA methodologies available today and so organizations will end up spending time developing their own methodology.

The operational aspect of software deployment also ends up becoming a challenge for a lot of organizations. With services acting as ‘black-boxes’ with many consumers, upgrades, back fixes, new features, versionining etc become big issue and best-practices haven’t emerged yet. For example, we virtualize our servers and individual WebLogic instances with a service-name that points to a hardware load balancer (F5 Networks BIG-IP). So a WebLogic instance running on Server A (or a cluster) listening on port 8000 could have a name like p-securityapp-v2 and another WebLogic instance running on the same server listening on port 8001 could have a name p-securityapp-v3. As long as client(s) externalize the URI of the service in a property file or some other store/resource, they can upgrade to v3 of the service by just changing the property file (and testing). So we can move our services from server A to server B and all we have to do is change the load-balancers’ configuration and everyone is automatically using the new instance. In our organization, we encourage people to upgrade and use the latest version of the service but the old service never goes away. Not the best solution but it’s easy to convince people to use something if they know that they will not be forced to change something in the middle of a development cycle for another effort.

The second part of the operational aspect is monitoring – There are very few tools on the market today that will allow you to monitor your services and surface the information to a business dashboard or console. I am looking forward to checking out the pavilion to see what people have been working on and how they can help Enterprises better monitor and track issues.

2.What are the advantages for developers in implementing SOA?

There are several advantages for developers in implementing SOA and one of the biggest one is that SOA allows the developer to focus on the business logic and implement functionality without having to worry about the other details they typically focus on. As services have a well-defined interface that is independent of the implementation, developers are free to implement their code in any programming language and so people that feel comfortable with Java can stick to Java and people that feel comfortable with .NET can stick with .NET. Vendors may not like the idea of mixed or heterogeneous environments, but they are a reality for most of the organizations and having a Java-only or a .NET only solutions or standard doesn’t make sense. Besides, it’s ludicrous to think that one vendor’s stack will solve all your problems. Having multiple vendor stacks keeps them honest and gives you options.

Another great benefit is almost a side effect but having a well-defined contract enforces good design practices.

Developers can decrease development times by using pre-built, reusable services as building blocks and create loosely coupled systems that are flexible and can adapt to changing business conditions. It’s great to be able to leverage components that are deployed, documented, tested and certified internally as you don’t have to reinvent the wheel. Instead, you can spend the time saved on other efforts for the business.

As an aside, there is also an industry effort called SOA Blueprints that is designed to help organizations build applications using service-oriented architecture (SOA). SOA Blueprints creates a common vocabulary to discuss SOA in an architecturally neutral way allowing comparable implementations to be crafted using different technology sets including J2EE, .NET and Web Services.

3.BEA sees great synergy in blending open source solutions with commercial technologies. Can you explain situations where you may have successfully used an open source framework in combination with WebLogic Server?

I see great value in blending of open-source and commercial solutions as a lot of great innovation is coming out of the open-source community and the ability to pick the best-of-breed components and deploying them inside WebLogic is very powerful. We’ve had great success in blending WebLogic and JRockit with open-source solutions like Struts, Spring, iBATIS, AXIS, log4J and many other great tools. Let’s take the example of Spring, which is a very popular Java/J2EE application framework built on the idea of Inversion-of-Control. Spring offers great data access and transaction management capabilities that allow you to implement your data-access layer using JDBC, iBATIS, Hibernate or JDO in a standardized way. All of our data-access components use Spring’s DAO framework with iBATIS under the covers. In this scenario, we are using the robust connection pooling and transactional capabilities of WebLogic while using that simplified POJO based programming model of Spring that eliminates unnecessary complexity often associated with J2EE.

Struts is also a great example of how we leverage this MVC-framework on top of WebLogic. Our web applications are built using Struts, which has become the de facto standard for UI development. All of our Struts application are deployed inside WebLogic and leverage our services-tier that’s based on EJB’s and Web Services. Another framework we’ve had great success with for external integration is the Apache Axis product that is an implementation of SOAP. Using Apache Axis, we’ve been able to leverage Web Services deployed inside WebLogic from Tomcat, JBoss and command-line or batch applications.

BEAWorld, SOA, AquaLogic, Spring, Struts, AXIS, WebLogic

BEAWorld – Day 2 Keynote

Mark Carges, the CTO of BEA Systems took the stage as part of the morning keynote. He started off by talking about SOA, Service Infrastructure and AquaLogic. Mark also mentioned the BEA Communication platform that has SIP support built-in and it will be interesting to see where this platform ends up as VoIP is really hot today and everyone is trying to get into the market and extend VoIP beyond simple telephony. Skype was cool but how can VoIP help solve business problems and provide another medium to service customers.

The theme of this year’s BEAWorld is Service Infrastructure and the Enterprise Service Bus (ESB) is finally getting hot. Enterprise Service Bus or an ESB is the next step in a Service-orientated technology that allows you to manage services with support for registries, async and durable messaging, validation, transformation, etc. The AquaLogic product line really looks interesting and I want to see its evolution and adoption in the enterprises.

Next up was Adam Fitzgerald to show off the AquaLogic service bus console and the routing engine that’s augmented with business rules.

The idea of blending WebLogic with open-source was another topic that Mark talked about again. This is nothing new as Mark announced this at JavaOne but what was different was Hibernate made it on the ‘data’ bucket. BEA will provide Spring download from their site with sample applications built using Spring on top of WebLogic 9.0. I think this is a great idea and a really smart move by BEA. A lot of people are

The big news was BEA’s purchase of M7 and their IDE NitroX. I guess BEA is serious about their support of Eclipse and NitroX will become the new Workshop.

Adam Fitzgerald was back up demoing a Spring’ified version of the MedRec application. Adam showed off the Spring tab in the WebLogic server console. The WebLogic console has also been extended to manage Tomcat instances. That looked pretty cool, as the Tomcat admin/manager is pretty basic. This is a great new feature!

The next part of the keynote was JRockit, the fastest VM in the market and my personal favorite VM. Mark re-announced JRockit for Sun Solaris with an end-of-year timeframe. WebLogic real-time with include a newer version of the JRockit VM with deterministic GC time that will allow real-time or near real-time performance.

Next up was Utility computing and the idea of a virtualized Java cloud with JVM running in hardware and the idea of ‘bare-metal’ where the OS is not getting in the way.

Next up was Jonathan Schwartz and he started with a pretty funny joke about the Intel logos on the podiums. Jonathan is a great speaker and actually may turn Sun around after years of incompetence from McNealy. Jonathan’s talk was about information, participation and how the network is changing society and creating communities. Continuing the JavaOne tradition, Jonathan humped NetBeans. I guess competition in the IDE space is good as its leads to innovation. Internet Explorer is a great example where innovation stops when the competition disappears. Jonathan also talked about DTrace, which was a big story at JavaOne. He also mentioned OpenSolaris and all the millions of downloads for non-Sun platform. My guess is most of the download as from Linux developers that are just going to steal the good features and put them in the Linux kernel 🙂

The best part of the talk was a video of Sun making fun of DELL servers and the video was essentially a Sun Fire x64 Servers commercial. I hope the video makes it on the net, as it is really creative and funny.

Jonathan also mentioned Niagara, the next generation of UltraSparc chip that is going to be coming out next year. Rhymes with Viagra and so I’m just waiting for the jokes to start rolling in. 🙂

BEAWorld, WebLogic, Sun, AquaLogic, ESB, M7, NitroX, Eclipse, Workshop

BEAWorld – Day 1

The first day at BEA was pretty cool – The day started as usual as Marge Breya, the Chief Marketing Officer playing emcee. Some of the attendee stats from BEAWorld 2005 are:

  • 1000 architects
  • 500 IT folks
  • 500 Developers
  • 00+ IT Management

Marge got things started by bringing on Alfred Chuang, the CEO of BEA Systems and he gave the ‘state-of-BEA’ address, AquaLogic and some great demos of WebLogic 9 with Bill Roth. There was emphasis again on blending the best of open-source with WebLogic and Alfred announced that BEA would release a certified version of Spring. Not sure if I heard that right as I haven’t seen anything in the press releases. Will have to catch Keith Donald or Colin Sampaleanu tomorrow to see if they have any additional details. The big thing that wasn’t really new to me or anyone else was the idea of zero downtime where you can hotswap application as well as the application server itself. After Alfred, Richard Wirt from Intel came on and talked about Wifi, WiMax and their internal software and SOA initiatives.

After the break was the SOA panel discussion (see press release). I was really excited to be able to participate in the SOA panel discussion to discuss best practice strategies and answer questions from our specific perspective. In addition to me, the other panelists were John Peebles from Cendant, Doug Saucier from Sony Pictures Entertainment and Patrick Holmes Intel. We were short on time and so I couldn’t go into some of the details I wanted to get into. I’ll post my comments here as a separate post later in the week as I had a ballpark idea on the questions.

After lunch, attended a couple of sessions on what’s new in WebLogic 9.0, Portal 8.x and the 9.0.3 roadmap. Looks like v9.x of Portal will include a really cool application called Groupspace that is basically a ‘Intranet-in-a-box’ with things like document library, announcement, issues, search (Autonomy), RSS, rich-text (Wiki like) and discussion thread. Just add the ability to blog and you’ve got a killer app. The next session I went to was essentially an ESB (Enterprise Service Bus) session with Paul Patrick. Didn’t really learn anything new there but Paul is a great feature and he had a pretty engaging presentation. It was interesting to see that BEA was OEM’ing stuff from Amberpoint and SOA Software. Amberpoint is a great company started by Paul Butterworth, who used to the CTO for Forte. Forte was eventually acquired by Sun for billions and I’ve used to see Sun use anything from Forte. I think they used the Forte name of the NetBeans tools but I’m sure all the ex-Forte guys are laughing all the way to the bank. Another boneheaded move by Sun!

The last session I attended was the Web Services programming model session with Jim Trezzo and Brian Zotter. Brian and Jim were on the expert group for JSR-181 and Brian is now the spec lead. It was really interesting to see the use of annotations that are JSR-175 compliant unlike the previous WebLogic proprietary Javadoc tags. What was interesting was the whole section on asynchronous Web Services messaging with support for WS-ReliableMessaging, WP-Proxy, WS-Addressing and the rest of the WS-* stack. Can’t wait to try out long-running processes with a callback to see if this really works. With JAX-RPC going away, I asked a couple of questions about JAX-WS but didn’t get any commitment from BEA on the future.

The last general session of the day was Burt Rutan and that was a really awesome session. I am a big fan of Burt’s and his work with Scaled Composite and SpaceShipOne and it was great to hear him speak about the lack of innovation in terms of airplane and spacecraft design. I also got the opportunity to get a picture taken with him. I know it’s cheesy but Burt Rutan is a great American and a brilliant man.

Too many bears at the pavilion event – Need to hit the sack to get ready to do this all over again.

BEAWorld, WebLogic, Web Services, JAX-WS, Burt Rutan, WS-ReliableMessaging, WP-Proxy, WS-Addressing

BEAWorld – Day 0

I finally make it into Santa Clara for BEAWorld after spending 8 hrs loitering around Chicago’s O’Hare airport. I guess I am pledging to never fly United again as their treatment of customer’s just sucks. The flight that I was on had some mechanical issues and so all the passengers got bumped from the short 20-minute flight from Milwaukee to Chicago. They had another flight standing by but they wouldn’t take us because there were 3 United employees traveling for free. No wonder you are in chapter 11 bankruptcy – So I got screwed like a lot of other people and missed my 10:00 am flight to Santa Clara. I finally get to O’Hare and have to wait hours before I can get on another flight to Santa Clara, 15 hrs after I started.

Another major gripe I have with Chicago’s O’Hare airport is that there is no Wifi in the airport. I was hoping to use the T-Mobile hotspot service but they are not allowed in O’Hare. The only place to get connectivity is a lame place called LaptopLane that rapes you with the usage charges – 65 cents a minute is highway robbery.

Enough of the rant – I am finally in beautiful Santa Clara, staying at the Westin hotel and already met a few people I knew. Can’t wait for tomorrow.

BEAWorld, 2005, BEA, WebLogic

Going to BEAWorld

I’m making my annual pilgrimage to everything WebLogic or rather BEA at the conference formally known as BEA eWorld. For some reason, it’s now called BEAWorld and its being held on 5 cities all over the world. I am attending the one in Santa Clara, just outside of San Francisco at the end of September. The other cities are London, Paris, Prague, Tokyo and Beijing and I wish I could go to one of those cities instead.

At BEAWorld, hoping to meet the usual cadre of geeks and learn a lot more about WebLogic 9.0, EJB 3.0, Portal 9 (?) and JRockit. Unlike JavaOne, BEA’s conference is always very technical and the content is truly relevant if you are using their products in your enterprise. I am also hoping to learn more about the Plumtree acquisition and see how that will affect the existing Portal product. I am also hoping to learn more about WebLogic’s roadmap for EJB 3.0, JAX-WS and some of the other emerging standards. I am also slated to participate in a panel discussion about SOA – should be interesting.

BEA, WebLogic, BEAWorld, Portal, EJB 3.0, JAX-WS, SOA

WebLogic 9.0 – First look at the GA release

BEA released the latest version (v9.0) of their flagship application server, WebLogic in early August. I have been playing with the latest release of WLS to see what’s new, what’s cool and what are the features that will make me push to upgrade ASAP.

In addition to J2SE 1.5 or Java SE 5.0 support, WLS 9.0 is also fully compliant with the J2EE 1.4 Specification and is fully buzzword compliant. This release includes support for EJB 2.1, Web Services 1.1, JMS 1.1, JMX 1.2, JDBC 3.0, WS-Security, SAML 1.1, Profile 1.0, WS-Policy, WS-Reliable Messaging and WS-Addressing among others. The specification notably missing is EJB 3.0 – WLS 9.0 does not support EJB 3.0 and will support it as a service-pack, when EJB 3.0 JSR finally gets approved. This was kind of disappointing as WebLogic has always been on leading/bleeding edge in terms of specifications. I know I would have used the built-in support for the 3.0 spec, knowing full well that things may change and break with service-packs. The reality is that we won’t be pushing apps in production under 9.0 till SP1 is out and we’ve truly gone through and understood all the changes from 8.1 and their impact to our applications and processes. (More information of all the API alphabet soup is available here here).

One of the newest and biggest additions to WebLogic is the new functionality called ‘Production Deployment’ or ‘side-by-side deployment’. This new feature allows you to redeploy a new, updated version of a production application without affecting existing clients of the application that have valid sessions, and without interrupting the availability of the application to new client requests. So all the old users continue to use the old version of the application and any new users get directed to the new application. As old sessions timeout and/or users log out, the old application is retired. This also works in a clustered environment where you may have many WebLogic instances. The one thing I haven’t tested yet is whether in-memory (session) replication still works as before. The scenario I hope to test soon is where Server A and Server B participate in a cluster. User 1 comes in and logs into Server A – in-memory replication will replicate User 1’s session over to Server B. While User 1 is still active, I deploy a new version of the application to the cluster. Once the application is deployed, I kill Server A and then have User 1 attempt to use the application. Will the old version of the application still be there on Server B even though it didn’t have any users using it?

WLS 9.0 also includes a completely new administration console built on top of the WebLogic Portal framework as a set of JSP’s with Struts and Beehive. This allows you to extend the console and add your own custom admin screens. I think this is a pretty useful concept as developers can add custom JMX hooks in their applications and then surface that data via the custom admin console interface. I’ve always built custom admin-consoles for applications to turn on/off things, resources inside the applications or failover, etc. Being able to add that functionality inside the console gives you the additional authentication and authorization capabilities to your custom admin screen. WLS supports JMX 1.2 and JMX Remote API 1.0 (JSR-160) in this release, which deprecates BEA’s proprietary API for remote JMX access, MbeanHome.

One of the nicest new features is the ability to create 1 log file for 1 day. This was always a missing feature that annoyed me to no end as you could rotate logs based by time but it was always elapsed time and so you couldn’t create 1 log file for 1 day that automatically rotates to a new log file at midnight. That is now enabled and all I can say is that it’s about time.

Another great enhancement is the use of DataSources instead of connection pools by default. Instead of configuring a JDBC connection pool and then configuring a data source to point to the connection pool and binding to the JNDI tree, you configure a data source that encompasses a connection pool. Before JDBC 2.0 and the concept of DataSource, people created a connection-pool and then used the pool driver (JDBC) to get a connection. But now everything is in the context of a DataSource and so you have to create a DataSource to create the underlying connection pool and that will force people to rewrite their legacy code that gets a connection from the pool directly. It’s a good thing, as it will make their code more portable.

There are quite a lot of simple enhancements that I find useful. For example, hitting CTRL-C to interrupt a running server that you were running inside a DOS window or UNIX shell used to just kill the server. Now the start script catches the interrupt and calls the WLS shutdown hook. Another minor but useful thing is that the auto-generated start scripts have support for JPDA (Java Platform Debugger Architecture). The command line includes all the parameters needed to fire up the debug listener on port 8453 but it’s configurable at each startup script level.

I know I’ve only scratched the surface with WebLogic 9.0 in the weeks of playing. I’ll continue to blog about anything that’s interesting or cool or broken.

Links of Interest:

WebLogic, WLS, WebLogic 9, WLS 9.0, BEA, J2EE

Servlet Filters: Part II

Earlier in the month, I blogged about Servlet Filters and how I see them as Aspects in the AOP world. Based on the blog entry, I’ve gotten tons of email from people that wanted to know more about Servlet Filters, how to use them and how to use the simple Authentication filter I used as an example. I also got quite a few emails from people that wanted to know what other filters I used and so I am including some resources that I find very helpful along with a few servlet filters that I use every day.

Servlet Filter Tutorials

Servlet Filter Apps

If you know of any other Servlet Filters that are useful, drop me an email or send me trackback.