main website home
  • About this blog

    This blog features updates, opinions, and technical notes from Caucho engineers about Caucho products, the enterprise Java industry, and PHP. Caucho Technology is the creator of the Resin Application Server and the Quercus PHP in Java engine. A leader in Java performance since 1998, Caucho is a Sun JavaEE licensee with over 9000 customers worldwide.
  • Tags

    ajaxworld bam candi cdi cloud cluster comet configuration deploy devoxx eclipse ejb embedded flash flex google app engine hessian hmtp ioc java ee 6 javaone javazone jms messaging newsletter nyjug osgi php pomegranate quercus resin resin 4.0 REST servlet sfjug silicon valley code camp spring testing training tssjs watchdog webbeans web profile websockets wordpress
  • Meta

    • Register
    • Log in
    • Entries RSS
    • Comments RSS
    • WordPress.org

Posts Tagged ‘quercus’

« Older Entries
Newer Entries »

Musedot on Quercus and Resin

Tuesday, July 22nd, 2008

I got a nice note from Frank E. Banks yesterday about his cool new music search engine, musedot. It’s running on Resin and Quercus open source. Here’s a quote from Frank about why he chose Caucho for his platform:

Musedot (http://musedot.com) is a music search engine I created that is built with java for the core logic and uses resin/quercus for java integration and presentation logic (php). Once I determined that I would need to write a search engine from scratch, and one that needed to be robust and fast, I started doing a lot of research on the best architecture and settled on resin/quercus because I wanted to avoid the overhead of the Java web services model and doing something as complex as writing it all in C was totally out of the question. The fact that it is open source was also important. Despite having to learn two new program languages, java and php, the development process has gone smoothly (for software development) and I my choice has proven to be an excellent one.

Thanks, Frank!

Tags: musedot, quercus, resin
Posted in Evangelism | No Comments »

XSS, Servlet Filters, and PHP

Tuesday, July 8th, 2008

Last night, I attended the San Francisco Java Meetup which was led by Jason Brittain on the topic of Cross Site Scripting (XSS). This is a serious security problem and Jason offered one solution: using Servlet filters to remove illegal input in user parameters. He has his own filter which will soon be available on SourceForge. He also mentioned the XSS filter from Stripes Framework. These are general solutions that may or may not be appropriate for your application, but they’re worth a look.

A question came up toward the end of the session on how to do this for PHP. My answer was simple: use Servlet filters! Quercus is available as a Servlet, so you can just insert these or other filters in front of (or behind) it. I understand there may be some PHP solutions for this, but this opens the option using a servlet filter as well. This area is still being developed, but if a servlet filter becomes one of the better known, recognized ways of doing really good XSS attack filtering, you’ll be set using Quercus.

Tags: quercus, xss
Posted in Engineering | No Comments »

Engineering update

Wednesday, July 2nd, 2008

This week has been (and will be) mostly an engineering week for me, but it’s an exciting one so I thought I’d let everyone know what’s going on.  First, I’m working on improving BAM to be easier to use from a developer’s point of view.  Essentially we moved to an introspected service instead of a strict interface for receiving events.  To give an example, the main BAM interface for receiving events is BamStream.  It contains methods like the following:

GeSHi Error: GeSHi could not find the language java5 (using path /var/resin/hosts/blog.caucho.com/webapps/ROOT//wp-content/plugins/codesnippet/lib/geshi/) (code 2)

There are similar methods for queryGet, querySet, etc. These methods are event handlers that are called on a service when a new message or query arrives for the service. The problem with this is you might have to write the following dispatch pattern:

GeSHi Error: GeSHi could not find the language java5 (using path /var/resin/hosts/blog.caucho.com/webapps/ROOT//wp-content/plugins/codesnippet/lib/geshi/) (code 2)

This isn’t too bad, but it looks messy when you have a ton of different message types. To fix the problem, we’ve written a base class called GenericService. Now instead of writing the code above, you would extend GenericService and write the following:

GeSHi Error: GeSHi could not find the language java5 (using path /var/resin/hosts/blog.caucho.com/webapps/ROOT//wp-content/plugins/codesnippet/lib/geshi/) (code 2)

This is equivalent to the code before, but now we do the dispatch for you. Under the covers, there’s some reflection magic going on, but basically all you have to do is make methods that match the right signature and use parameter annotations like @Message, @QueryGet, @Presence, etc.

In other news, I’ve also been making sure that WordPress Mu works with Quercus. There were a couple of buglets, but those are fixed in the trunk now and it should be ready to go with Resin 3.2.0, due out in about 2-3 weeks. I put up a wiki page that describes how to do the installation. It’s a bit long right now, but hopefully we’ll soon be getting a Debian install that reduces the steps by half.

Tags: bam, quercus, wordpress mu
Posted in Engineering | No Comments »

BAM update

Tuesday, June 10th, 2008

The last two weeks have been pretty engineering heavy for me, thus the slow pace of updates. ;-) What I’ve been working on are several BAM-related technologies. First, the Sudoku demo has been simplified and clarified. I’ll be writing a tutorial based on it soon which I’m also hoping to publish in the Flash & Flex Developers’ Magazine. Next, I’ve been working on building a PHP/BAM bridge. This is pretty exciting and shows the real power of Quercus: you can write true event-based programs in PHP. This is not something that is done easily or cleanly in the C implementation of PHP. The first example of this will be an XMPP chat server. Basically we’re moving PHP beyond the realm of simple HTTP web applications to have the full power of the Java platform.

Tags: bam, php, quercus, xmpp
Posted in Engineering | No Comments »

Hosting Quercus

Tuesday, May 13th, 2008

One of the issues with Quercus adoption is where to host it. At the moment, there are a ton of PHP developers/users using cheap, plentiful PHP hosting. For a lot of users who are putting up smaller sites which generate little or no revenue, this makes a lot of sense financially. Unfortunately, Quercus is not what’s being used in those hosting environments. Using Quercus requires that you have a Java host or ISP, hopefully Resin :-), and those haven’t been really affordable for most hobbyists.

Last week Sam Heisz, one of our Technical Sales people, pointed me at linode.com, a really cool web host that gives you a virtual machine on which you can run Linux. They have a number of distribution images already set up and you have root on them once you get set up. They’re only about $20/month at the entry level, so it’s still pretty affordable for most people. I actually set up my own personal website there (which I won’t post just yet as it’s not quite ready yet) using Drupal on Quercus. Look for a wiki post soon and possibly a video tutorial to show how to do this soon.

Tags: drupal, linode, quercus
Posted in Engineering, Industry | No Comments »

JavaOne in review

Monday, May 12th, 2008

JavaOne wrapped up last week and I think it was very successful for Caucho. We had a few hundred people drop by the booth to learn about Resin, Quercus, and Hessian. A number of users of all of these technologies dropped by as well to let us know how we’re doing. Thanks to everyone who stopped in!

If you’re using Resin, Quercus, or Hessian in a project, let us know! We’re really interested in how you’re using the products, even if you haven’t purchased a professional license or support. All of our products have an open source component and for a lot of projects, that’s all you need.

I also did a couple of interviews during the show, one for Java Posse, which will hopefully show up in a podcast soon :-) and one with Tony Baer of onStrategies, who blogged about Quercus. Look for Caucho to show up in the news more and more over the coming weeks. We’ve got a lot going on… :-)

Tags: hessian, javaone, quercus, resin
Posted in Evangelism, Industry | No Comments »

Update: Newsletter, Hessian messaging, and Terracotta

Thursday, April 17th, 2008

Just a quick update to let everyone what’s going on this week. I’ve got three big projects that I’ve been working on this week. First up is the newsletter. We trying to get a monthly newsletter going to let people know about success stories, new features in Resin, upcoming events, and general Caucho news. That’s cool and I like letting everyone know what’s going on, but the fun part has been writing the newsletter sending app. :-) I’ve been writing it in Quercus and using some of Resin’s lesser known facilities like scheduled tasks and the authenticator framework. It’s pretty cool how these two features come together and make PHP apps so much easier to write. When some time comes around (i.e. after May and JavaOne), I’ll try to write up a description of how I put all these things together.

Hessian messaging (codenamed HMPP/Hemp) is getting pretty exciting. It’s inspired by XMPP and basically allows creating truly rich client side applications. Actually, it’s even more than that. It combines RPC and messaging into one elegant protocol which lets you do pub/sub and a bunch of other cool things. It’s still preliminary now, but I’m writing what should be a really cool demo for JavaOne. Make sure you stop by the booth to check it out!

A couple of months ago, I talked with the guys from Terracotta at the Silicon Valley JUG. Since then, we’ve been working out how to make sure Resin and Terracotta work together. The basic distributed shared objects work fine, pretty much out of the box. Earlier this week, I was also able to get Terracotta’s distributed sessions going, but then tried it again and it stopped working. Don’t you hate it when that happens? ;-) It seems there’s an issue with classloader naming. Anyway, we expect to get it worked out soon so Terracotta and Caucho customers will hopefully get to use the full features of both companies’ software.

Tags: hessian, messaging, newsletter, quercus, terracotta
Posted in Engineering, Evangelism | 2 Comments »

San Francisco Java Meetup

Wednesday, April 9th, 2008

Thanks to everyone who showed up for my Quercus presentation at the Java Meetup on Monday! I think it went pretty well and I was able to give a lot of examples. Sasa, the organizer and a partner at Marakana, provided us with a great set up. The guest list for the event filled up really quickly so Sasa also suggested that if enough people are interested, he might be able to get a bigger venue for a repeat event. Please let me know if you’re interested and I’ll add your name to the list.

Here are the files we used during the presentation:

  • Slides from the April 7 San Francisco Java Meetup about Quercus
  • Quercus distribution with examples

Tags: marakana, quercus
Posted in Evangelism | No Comments »

Ready for prime time?

Monday, March 31st, 2008

Ok, ok… so it’s been a while since I had a chance to blog, but I have two good excuses. The week before last, I was at AjaxWorld, giving a presentation and meeting a bunch of interesting people. The conference was very fruitful, but they didn’t have wireless! :-/ Anyway, thanks to everyone who came out to my presentation (all 10 of you ;-)), even though it was 5:20pm after a day that started with 7:00am keynote.

Last week, I was sick and a bit dazed, so I figured it was a good time not to blog a fever-inspired rant. :-)

This week, I’ll be at the MuleCon in San Francisco, checking out the cool things that people are doing with Mule. One of the fun things we did was to integrate Resin IoC with Mule so you can pull down objects configured in Resin IoC natively in your Mule configuration. If you’re going to be at MuleCon, let me know and we can meet up.

Next Monday is our Quercus tutorial at the Java Meetup group in San Francisco. The guest list is full! I’m excited, but if for some reason you can’t make it or didn’t sign up in time, I’ll be posting the presentation here afterwards.

Anyway, today I bring you a nice little gem from Scott on the Resin-Interest mailing list (you are signed up for it, aren’t you?). Someone asked how to prepare their Resin installation for “prime time” and Scott offered up these very cool suggestions:

  • The default <dependency-check-interval> should be raised to a minimum of 60s or even larger.
  • If you haven’t already profiled your application, remember that Resin’s /resin-admin has a profile tab. It’s surprisingly
    lightweight, so it’s possible to use even on a production machine. It’s always a good idea to be aware of where your application is
    spending its time.
  • Take a few thread dumps using the /resin-admin, so you get an idea of the baseline behavior. If something does go wrong, you’ll want to be able to distinguish the normal behavior from the unusual. It’ll also get you in the habit of taking thread dumps, for a freeze or CPU spike.
  • On Linux (and other Unix), check your file descriptor max with uname -a. The defaults are surprisingly low.
  • Remember that threads need virtual memory, too. That’s an issue for 32-bit systems. 1024 threads x 1m stack size = 1G memory.
  • Become familiar with the jconsole view (or some other jmx admin).

If you do these and have a support question, we’ll be in a much better position to help you out. In fact, these steps will be helpful in getting to know your system even better. If anyone else has suggestions on how to prepare a system for prime time, please comment!

Tags: ajaxworld, mule, quercus, resin ioc, tips and tricks
Posted in Engineering, Evangelism | 1 Comment »

SF JUG

Tuesday, March 4th, 2008

Thanks to Alex Gargenta and Shawn Silverman for a fun evening at the San Francisco Java Meetup. Shawn showed us how to program little tank-like robots called TrackBots. I managed to create a completely insane program for the robot, but managed not to crash it.

I went last night not only to play with robots, but to check out the group because we’re doing a presentation there next month on Quercus! I hope everyone will be able to come out and join us. More information to come…


Shawn plays with the robots

Tags: quercus, robots, sfjug
Posted in Announcements | No Comments »

« Older Entries
Newer Entries »

Caucho Technology is proudly powered by WordPress and Quercus®
Entries (RSS) and Comments (RSS).

  • HOME |
  • CONTACT US |
  • DOCUMENTATION |
  • BLOG |
  • WIKI 4 |
  • WIKI 3 |
  • Resin: Java Application Server
Copyright (c) 1998-2012 Caucho Technology, Inc. All rights reserved.
caucho® , resin® and quercus® are registered trademarks of Caucho Technology, Inc.
resin® is a cloud optimized, java® application server that supports the java ee webprofile ®