Mule Story 3: Power to the User

Reading Time: 5 minutes

Over the past months, we’ve been regularly blogging about the cool new features that are coming in Mule 3. So far, we’ve presented these features in high level terms. In the coming days, we will start posting more detailed information about all the good stuff Mule 3 will offer and how you will be able to benefit from them.

Obviously, the most visible changes will concern the XML configuration. But, like the tip of the iceberg, that will only be a small part of the whole story. Deeper changes have occurred; and they were all about empowering Mule’s users.

Continue reading

The value of APIs that can be crawled

Reading Time: 15 minutes

Recently, there was an interesting article on ReadWriteWeb questioning the long term effect of the proliferation of public APIs, versus merely offering crawlable data. On one hand – the article argued – APIs offer a great deal of control to the publisher and they are great for access to real-time information. On the other hand, if data is only accessible through an API then it is not available for spiders and crawlers and thus won’t show up in search results. In effect, the public loses out, since less data can be searched for.

However, I think this takes a somewhat limited view on what an API can be. In fact, if the API is designed properly then the API itself can be discovered via a crawler, along with all the information the API provider chooses to make public. This is particularly true for RESTful APIs where ‘discoverability’ is a fundamental design concept. For example, in the open source RESTx project – a fast and simple way to create RESTful web services – a RESTful, documented and fully discoverable API is created automatically.This API consists of links, exposed resources, human- and machine-readable documentation and descriptions of parameters, which are extracted from information contained in the code and in the resources that have been created on the RESTx server. Everything can be discovered merely by following links.

Continue reading

Laying the foundation for RESTful web services

Reading Time: 17 minutes

Ever now and then you find a new piece of software or feature, which ends up changing the way you work, saving you time and just overall making things easier for you and your organization. We think that the RESTx project with its new 0.9.2 release gains such a feature. We call it “specialized components”. What is that, why is it useful and how will it make things easier for you? In a moment I will use an example for illustration, but let me first provide a little background on RESTx. If you are already familiar with RESTx, you can skip over the next chapter.

RESTx: A quick introduction

RESTx – we believe – is the fastest way to create RESTful web services. RESTx is a fully RESTful, small, stand-alone server. A RESTx server houses components – code that implements some functionality for data access, integration or processing, written in either Java or Python.

Continue reading

RESTx version 0.9.2 released

Reading Time: 12 minutes

Today we are happy to announce the release of version 0.9.2 of RESTx – the fastest and simplest way to create RESTful web services.

Besides the usual, numerous small improvements and fixes there are also a number of exciting major new features and capabilities:

Continue reading

Webinar: Improve Tomcat Productivity

Reading Time: 3 minutes

Do you ever ask yourself these questions: “Can I eliminate the redeploy phase from Tomcat’s development cycle? How can I more efficiently diagnose performance bottlenecks in my Tomcat application? How can I simplify configuring Tomcat for my application?”

Apache Tomcat users spend 160 hours per year waiting for redeploys, not to mention the time getting back into the flow of coding. They also spend quite a bit of time configuring Tomcat for deployment to production, and investigating and resolving performance and availability issues — without deep diagnostic data.

In a webinar on July 28th at 10am PT, MuleSoft and ZeroTurnaround have teamed up to provide web application developers using Tomcat with the ultimate “one-two punch” for developer productivity.

Register now!

Join us for a 45-minute demo-driven webinar, where you will see how JRebel and Tcat Server can help you:

  • Instantly see the effects of your code changes without having to restart Tomcat
  • Discover and quickly resolve performance issues with deep diagnostic capabilities
  • Visually browse and edit Tomcat configuration files

Speakers:
Sateesh Narahari, Director of Product Management at MuleSoft
Toomas Romer, Co-Founder, Lead Developer at ZeroTurnaround

Logistics:
Date: July 28, 2010
Time: 10am PT / 1pm ET / 5pm GMT / 6pm BST (find your time zone)

The easiest way to run Tomcat as a Windows service

Reading Time: 6 minutes

Organizations running Apache Tomcat in production on Windows often want to run Tomcat as a Windows service. This removes the need for someone to be actively logged into the server and provides an easy way to integrate with Windows management tools. In this blog, I will explain the easiest way to run Tomcat as a Windows service and how you can do this for multiple instances as well.

Running an instance of Apache Tomcat as a Windows service is not complicated, if you download the correct distribution of Tomcat (Windows service Installer). However, running multiple instances of Tomcat as Windows services is a more complicated process. To avoid issues, you would have to:

1. Uninstall the service that the installer has installed ( if you used the service installer)

2. Run the service.bat command and give it an unique name ( so, next service install would not fail )

service.bat install MyTomcat2 ( you have to download the zip distribution to get service.bat )

2. For each instance, edit server.xml and manually modify all ports to unique non-default numbers

3. Go to Service Control Manager by running ‘services’ from Start menu and change the startup type for each instance to be “Automatic”

You would have to repeat this process for each instance that you want to install, which can get tedious and potentially quite error-prone.

The Tcat Server installer provides a much better experience by enabling you to select a name for the service and also by enabling you to install multiple Tomcat instances on the same box. All you have to do is to run a standard install of Tcat Server on Windows, and it will automatically install Apache Tomcat as a Windows service. It can detect name conflicts and pick unique service names for the Windows services. (The installer also detects port conflicts, so you don’t run into start-up issues due to port conflicts).

Continue reading

Easily optimizing Python: Extending with Java

Reading Time: 49 minutes
cartoon_duck

Our RESTx project – a platform for the rapid and easy creation of RESTful web services and resources – is largely written in Python. Python is a dynamic, duck-typed programming language, which puts very little obstacles between your idea and working code. At least that’s the feeling I had when I started to work with Python several years ago: Never before was I able to be so productive, so quickly with so few lines of code. I was hooked. No wonder some people describe it as ‘executable pseudo code’: Just write down what you want and for the most part, it will actually work.

Now there’s a price to pay for this increased developer productivity, where the interpreter somehow figures out at run time what it is that you actually want to do and how to let your code deal with all sorts of different types: Python is interpreted, it’s dynamic and this means that for the most part it’s slower than compiled languages.

In this article here, I will talk about an interesting optimization technique for Python, which will come as a surprise to many Python developers.

Continue reading

Multiple Tomcat Instances Made Easy

Reading Time: 4 minutes

“Having Trouble With Multiple Instances” is one of those famous Tomcat users list topics that never goes away.  In fact, the question has been asked so many times that at this point, the people asking it are lucky if they get a response that’s more helpful than RTFM.

These errors are almost always caused by port conflicts.  When running multiple instances of Tomcat on a single machine, each instance must be configured with a unique set of port numbers.  This might seem like a no-brainer, but it’s actually very easy to get wrong.  Every port number must be unique on the system, and has to be changed manually in multiple locations within Tomcat’s XML configuration files, which leaves plenty of room for accidental errors.

There had to be a better way.  With the release of Tcat Server 6 R3, there is!  Tcat Server 6 R3 includes an easy way to get multiple instances of Tomcat up and running on your machine with zero errors.

Continue reading

Mule 3 Milestone 4 Released

Reading Time: 3 minutes

The Mule ESB team is pleased to announce the next milestone towards our final Mule 3.0 release. Recent work includes the following areas:

Hot DeploymentMule now supports multiple applications running within the same Mule instance and deployment descriptors for specifying the contents of your deployment (e.g., multiple configuration files). All Mule examples included in the distribution have now been updated to use the new application deployment format. If you have not yet read about the application deployment model new to Mule 3.0, read this blog post.

Message Exchange Patterns – Message Exchange Patterns (a.k.a. MEPs) give you more explicit and flexible control over the way messages flow through Mule. For example, you can now specify whether you expect a response on a given endpoint or not (see the new attribute “exchange-pattern” on endpoints). In the future, we may introduce additional exchange patterns that allow for different communication styles as well.

Continue reading

Turbo charging front-end development with user-created RESTful resources

Reading Time: 70 minutes

In this article, I will show you how RESTx – an open source project for the creation of RESTful web services and RESTful resources – allows front-end developers to quickly and easily make their own data resources, without having to rely on the back-end server team for every new requirement.

Continue reading