People and Technology

April 11, 2009

My First Book Published - Business Rules with JBoss Drools

Filed under: BPM, Business, RedPiranha, Workflow, book, drools, enterprise, enterprise java — Paul Browne @ 10:01 pm

The guys over at the official Drools blog beat me to the announcement, as I was waiting for it to published on Amazon, but now that it has, I’m happy to announce that after 12 months of pushing and shoving, I’ve finally got my first book , on Business rules and Workflow, out the door.

What, you’re still here? Well if it takes a bit more to convince you to buy it, here’s the info on the Business Rules and Workflow book direct from the publishers (Packt) own site. If you can’t wait, and want to dive right in, the code samples from the book are available on the Red Piranha 2 website.

JBoss Drools Business Rules
JBoss Drools Business Rules Capture, automate, and reuse your business processes in a clear English language that your computer can understand.

  • An easy-to-understand JBoss Drools business rules tutorial for non-programmers
  • Automate your business processes such as order processing, supply management, staff activity, and more
  • Prototype, test, and implement workflows by themselves using business rules that are simple statements written in an English-like language
  • Discover advanced features of Drools to write clear business rules that execute quickly
  • For confident users of Excel or other business software, this book is everything you need to learn JBoss Drools business rules and successfully automate your business.


Code download
Request a Review Copy
Send us feedback on this title
Ask a question about this title
Sample Chapter 4 Guided Rules with the Guvnor [2.0 MB]
Table of Contents
Book Details

Language English
Paperback 305 pages [191mm x 235mm]
Release date April 2009
ISBN 1847196063
ISBN 13 978-1-847196-06-4
Author(s) Paul Browne
Topics and Technologies Open Source, Java


A comprehensive, practical guide for business analysts and non-programmers to harnessing JBoss Drools Business Rules in your organization

In Detail

In business, a lot of actions are trigged by rules: “Order more ice cream when the stock is below 100 units and temperature is above 25° C”, “Approve credit card application when the credit background check is OK, past relationship with the customer is profitable, and identity is confirmed”, and so on. Traditional computer programming languages make it difficult to translate this “natural language” into a software program. But JBoss Rules (also known as Drools) enables anybody with basic IT skills and an understanding of the business to turn statements such as these into running computer code.

This book will teach you to specify business rules using JBoss Drools, and then put them into action in your business. You will be able to create rules that trigger actions and decisions, based on data that comes from a variety of sources and departments right across your business. Regardless of the size of your business, you can make your processes more effective and manageable by adopting JBoss Rules.

Banks use business rules to process your mortgage (home loan) application, and to manage the process through each step (initial indication of amount available, actual application, approval of the total according to strict rules regarding the amount of income, house value, previous repayment record, swapping title deeds, and so on).

Countries such as Australia apply business rules to visa applications (when you want to go and live there)—you get points for your age, whether you have a degree or masters, your occupation, any family members in the country, and a variety of other factors.

Supermarkets apply business rules to what stock they should have on their shelves and where—this depends upon analyzing factors such as how much shelf space there is, what location the supermarket is in, what people have bought the week before, the weather forecast for next week (for example, ice cream in hot weather), and what discounts the manufacturers are giving.

This book shows how you can use similar rules and processes in your business or organization. It begins with a detailed, clear explanation of business rules and how JBoss Rules supports them.

You will then see how to install and get to grips with the essential software required to use JBoss Rules. Once you have mastered the basic tools, you will learn how to build practical and effective of the business rule systems.

The book provides clear explanations of business rule jargon. You will learn how to work with Decision Tables, Domain-Specifi c Languages (DSL)s, the Guvnor and JBoss Integrated Development Environment (IDE), workflow and much more.

By the end of the book you will know exactly how to harness the power of JBoss Rules in your business.
Read the full Table of Contents for JBoss Drools Business Rules

What you will learn from this book

  • Understand the basics of business rules and JBoss rules with minimal effort
  • Install the required software easily and learn to use the Guvnor, which is a user-friendly web editor that’s also powerful enough to test our rules as we write them
  • Learn to write sophisticated rules and import the fact model into the Guvnor and then build a guided rule around it, which makes your web pages a lot clearer
  • Gain complete knowledge of what we can do with the Guvnor rule editor, and then use the JBoss IDE as an even more powerful way of writing rules, and automate processes for discounts, orders, sales, and more
  • Know the structure of the rule file through the example of a shipping schedule, which will help you with your own shipping schedule
  • Test your rules not only in the Guvnor, but also using FIT for rule testing against requirements documents; run unit tests using JUnit for error-free rules and interruption-free services
  • Specifically, non-developers can work with Excel spreadsheets as a fact model to develop business processes without learning any other new technology
  • Work with DSLs (Domain-Specific Languages) and rule flow to make writing rules easy; which makes staff training quicker and your working life easier
  • Deploy your business rules to the real world, which completes your project successfully, and combine this into a web project using the framework of your choice to provide better services
  • Benefit from concepts such as truth maintenance, conflict resolution, pattern matching rules agenda, and the Rete algorithm to provide advanced and faster business systems so that staff efficiency is maximized

Chapter 1, Drooling over JBoss Rules. This chapter gives you a good platform to understand business rules and JBoss rules. We look at the problems that you might have (and why you’re probably reading this book). We look at what business rule engines are, and how they evaluate business rules that appear very simple and how they become powerful when multiple rules are combined.

Chapter 2, Getting the software, deals with installation. This chapter explains setting up Java, setting up Business Rule Management System (BRMS)/Guvnor running on the JBoss App Server, setting up Eclipse, and installing the Drools Plug-in. It also details the installation of the Drools examples for this book and the Maven to build them.

Chapter 3, Meet the Guvnor, deals with writing our rules using the ‘Guvnor’. Guvnor is the user-friendly web editor that’s also powerful enough to test our rules as we write them. We take up an example to make things easier. Then we look at the various Guvnor screens, and see that it can not only write rules (using both guided and advanced editors), but that it can also organize rules and other assets in packages, and also allow us to test and deploy those packages. Finally, we write our very first business rule—the traditional ‘Hello World’ message announcing to everyone that we are now business rule authors.

Chapter 4, Guided Rules with the Guvnor. This chapter shows how to use the Guvnor rule editor to write some more sophisticated rules. It also shows how to get information in and out of our rules, and demonstrates how to create the fact model needed to do this. We import our new fact model into the Guvnor and then build a guided rule around it. Finally we test our rule as a way of making sure that it runs correctly.

Chapter 5, From Guvnor to JBoss IDE. This chapter pushes the boundries of what we can do with the Guvnor rule editor, and then brings in the JBoss IDE as an even more powerful way of writing rules. We start by using variables in our rules example. Then we discuss rule attributes (such as salience) to stop our rules from making changes that cause them to fi re again and again. After testing this successfully, we look at text-based rules, in both the Guvnor and the JBoss IDE, for running ‘Hello World’ in the new environment.

Chapter 6, More Rules in the jBoss IDE. This chapter looks again at the structure of a rule fi le. At the end of this chapter, we look at some more advanced rules that we can write and run in the IDE.

Chapter 7, Testing your Rules. This chapter explains how testing is not a standalone activity, but part of an ongoing cycle. In this chapter we see how to test our rules, not only in the Guvnor, but also using FIT for rule testing against requirements documents. This chapter also explains Unit Testing using JUnit.

Chapter 8, Data in Excel, Rules in Excel. This chapter explains how to use Excel Spreadsheets (cells and ranges) as our fact model to hold information, instead of the write-your-own-JavaBean approach we took earlier. Then we use Excel spreadsheets to hold Decision tables, to make repetitive rules easier to write.

Chapter 9, Domain-Specific Languages [DSL] and rule flow. This chapter aims to make our rules both easier to use, and more powerful. We start with DSLs—Domain-Specifi c Languages. This chapter follows on from the ‘easy to write rules’ theme from the previous chapter and also discusses both ruleflow and workflow. It would be great to draw a workfl ow diagram to see/control what (groups of) rules should fi re and when. Rule flow gives us this sort of control.

Chapter 10, Deploying rules in real life. This chapter shows you how to deploy your business rules into the real world. We look at the pieces that make up an entire web application, and where rules fit into it. We see the various options to deploy rules as part of our application, and the team involved in doing so. Once they are deployed, we look at the code that would load and run the rules—both home-grown and using the standard RuleAgent. Finally we see how to combine this into a web project using the framework of your choice.

Chapter 11, Peeking under the covers. This chapter looks at what happens under the cover by opening up the internals of the Drools rule engine to understand concepts such as truth maintenance, confl ict resolution, pattern matching, and the rules agenda. In this chapter, we explore the Rete algorithm and discuss why it makes rules run faster than most comparable business logic. Finally we see the working memory audit log and the rules debug capabilities of the Drools IDE.

Chapter 12, Other Drools features. This chapter deals with the other advanced Drools features that have not yet been covered. This includes Smooks to bulk load data, Complex Event Processing, and Drools solver to provide solutions where traditional techniques would take too long.

Approach

This book takes a practical approach, with step-by-step instructions. It doesn’t hesitate to talk about the technologies, but takes time to explain them (to an Excel power-user level). There is a good use of graphics and code where necessary.

Who this book is written for

If you are a business analyst – somebody involved with enterprise IT but at a high level, understanding problems and planning solutions, rather than coding in-depth implementations – then this book is for you.

If you are a business user who needs to write rules, or a technical person who needs to support rules, this book is for you.

If you are looking for an introduction to rule engine technology, this book will satisfy your needs.

If you are a business user and want to write rules using Guvnor/JBoss IDE, this book will be suitable for you.

This book will also suit your need if you are a business user and want to understand what Drools can do and how it works, but would rather leave the implementation to a developer.


Author(s)

Paul Browne
Paul Browne’s first job was selling computers in France and things went steadily downhill from there. He spent millons on behalf of a UK telephone company’s procurement department and implemented direct marketing for a well-known Texan computer maker before joining the IT department of a company that builds bright red tractors and other seriously cool machines.

Paul then embraced his techie side (he was writing games in machine code from the age of 11) and started a consultancy that used IT to solve business problems for companies in the financial and public sectors in Ireland, UK , Belgium, and New Zealand. Eight years later, he now works with an Irish government agency that helps similar software companies to grow past their initial teething pains.

More formally, Paul has a bachelor’s degree in Business and French from the University of Ulster, a master’s degree in Advanced Software from UCD Dublin, a post-grad qualification in Procurement from the Chartered Institute of Procurement and Supply (UK), and will someday complete his ACCA financial exams.

Paul can be found on LinkedIn at http://www.linkedin.com/in/paulbrowne , and via the Red Piranha (Business knowledge) project at http://code.google.com/p/red-piranha/ .

June 15, 2008

How to combine Workflow and Business Rules - in 5 easy steps

Tom has a good post on the jBPM (JBoss workflow) community day held at the Guinness brewery in Dublin. Warning - slides may contain pictures of people drinking beer.

Drools jPBM Business rules presentation

How to combine (jBPM) Workflow and (Drools) Business Rules - here’s the summary. Slideset is available on this blogpost.

  • Workflow (e.g. JBoss jBPM) is great - it allows you to take spaghetti code and draw it as a workflow diagram (flowchart) so that it can be reviewed by the business (the nice people who pay our wages). You then attach standard (Java) actions to these steps.
  • Only problem is when you come to a decision node (the one circled in red below): How do you decide to go left or right (in the workflow)? Normally this is coded in Java - good for us, but hidden from those nice business people (which means that this is more room for errors-in-translation).
  • Business Rules allow you to keep those decision making rules in Plain English: When something is true , then do this. That’s it. The rule engine does most of the hard work.
  • Integrating Workflow and Rules is easy. Use JBoss Seam (link) or do it by hand (link). And it works on non-JBoss web / app servers such as Websphere, Oracle Application Server, Tomcat and Weblogic.
  • Repeat x6 : Use workflow and rules. Use workflow and rules …

Simple Workflow

In a maybe related development, Tom Baeyens is now using strangely Rules-y like examples over on his workflow blog ….

June 5, 2008

JBoss Business Rules and jBPM Workflow presentation - Dublin

Filed under: JBoss, Java, Workflow, jbpm, presentation, whitepaper — Paul Browne @ 10:23 pm

Update: Shortcut to slides (pdf, with notes following) here.

Speaking at the JBoss jBPM community day tomorrow and I’m nervous. I’m nervous because I’m standing up and talking to a group of people that really know their stuff about JBoss workflow. And talking about a project (JBoss Business rules) which has a friendly rivalry with it.

jbpm logo

So here goes

  1. Slides in Powerpoint emailed to myself (check)
  2. Slides in PDF available online (check).
  3. Slides in Open Office on laptop ready for presentation (check)

Drools Logo
More details on the jBPM wiki if you’re interested in attending the event. Anybody give odds on the laptop bluescreen again (like what happened at the Irish Java Technologies Conference)? It’s not what happens, it’s how you deal with it.

May 14, 2008

JBoss workflow invading Dublin (Free Community Conference)

Filed under: BPM, IT, JBoss, Knowledge Management, Workflow, enterprise, enterprise web 2.0, jbpm, jee — Paul Browne @ 1:41 pm

I’m not going to explain what workflow is as I’ve probably blogged enough about it already. But the JBoss Workflow (jBPM) guys are coming to Dublin on June 6th. If you’re into workflow (and if you’re doing any sort of software for large business you should be) then this is a do not miss event and we’re privileged to have it in Ireland.

The JBoss workflow guys are dream guests. They just asked for a couple of venue suggestions and they finally went for the Guinness Hopstore where Barcamp ran last year. Next thing we got was an email saying that the JBoss Workflow event was go. So for the benefit of people flying into Dublin, here’s the information we gave on where to stay and things to do if you’re making a weekend of it.

(More information on the event on Tom Baeyens Blog)

Workflow

How to get there

Dublin is pretty well served by direct flights from Europe and the US. Aer Lingus and Ryanair are the two biggest airlines flying into Dublin - but there are plenty more (list at FlightMapping.com).

Things to do

  • Tour of Guinness brewery and visit the Gravity bar (one of the highest in Dublin)
  • Dublin Pub Tour and general social scene (it’s a coincidence that the first 2 items are drink related!)
  • Tour of Scenic Wicklow Mountains and Glendalough
  • Liffey River tour by boat
  • Dublin Bus tour - including it’s Georgian buildings and coastline
  • Newgrange - 2000 years older than the pyramids, in the stunning Boyne valley
  • Windsurfing , Kayaking or Rock climbing in Viking Carlingford Fjord.
  • Trinity College Dublin, 400 years old university , right in the city centre including the 1000 year old ‘Book of Kells’
  • For the more curious , Belfast is 2hrs away by express train in Northern Ireland.
  • Get lost in Phoneix Park, the worlds largest city centre park.

Places to Stay

I don’t tend to say in Dublin hotels too much (!) but the following I know are reasonably good value (and quiet / clean)

  • 3 of the Jury’s Inn (Christchurch is just down the road from the event location, but the IFSC and Parnell Street are also good)
  • Academy hotel is ok, if slightly more expensive , if you’re stuck.
  • If you want an airport location (about 20 mins / 20 Euro Taxi from the city centre) the Premier Inn chain are pretty good.
  • Hotel Isaacs is budget but decent , central and near the main bus / train stations.
  • Morgan hotel is where the presenters were put up for the Dublin Java conference. Central but Slightly more pricey.

For people from the community, there’s also plenty of ‘budget’ backpacker type accommodation.

October 1, 2007

You need to go to a self help group - Rules and Workflow

Filed under: JBoss, Java Enterprise Edition, Workflow, design, enterprise, enterprise java, j2ee, java5, rules — Paul Browne @ 4:33 pm

Picture the scene: a self help group meeting, plastic chairs arranged in a circle. Sitting on the chairs are an assortment of (mainly) men in their 20’s or 30’s. One plucks up the courage and mumbles ‘Hello, I’m Paul , and I’ve been writing bad Java code for 10 years‘.

When I got into Java I was using JSP for everything - HTML, talking to databases, doing workflow - anything I could get my hands on. I was young and I didn’t know what I was doing. Even after I got treatment based on EJB, Spring and Hibernate, I still feel that there is a void at the centre of my coding life‘.

Rule Engine Logo

I fell in with a bad crowd. Business types with suits and violin cases. They said they’d pay me good money if I built them something. Now they don’t believe that it works - it’s all techie stuff to them. Those boys are going to play rough if I can’t make them understand the code. What can I do?

There was silence for a while. Then the group leader said

It’s a tough one. Does anybody have any suggestions?

Read the full text of the O’Reilly Mini-Article here.

March 10, 2007

Idiots guide to Service Orientated Architecture (SOA)

Lost in the hype around Service Orientated Architecture (SOA) is the fact that the idea is really really simple. It’s all based on the idea that most applications (and that includes websites) are built either to be used by people , or used by computers. The pictures below (a free preview from the Enterprise Java Briefing) show what I mean.

In a ‘normal’ application, such as a online banking website, we need to remember what the user did last (are they logged in, what account are they looking at, are they in the middle of making a payment). If we didn’t , the user would get annoyed about having to repeat themselves every step of the way. It would also make for pretty complicated screens, to allow the user to enter all the information in one go. Instead , we allow the user to enter information in several steps, and remember where there are each time.

Soa Client

In an application designed to be used by computers, we don’t have to worry about this. We can force the computer to give us all the information required all in one go - username , password, bank account to take money from , bank account to give money to, date to execute transaction. For a computer , this is actually easier ; we make one call to our banking service and we are told it has succeeded or failed. It’s also easier for us to build our service:

  • Each service (transfer money, book flight , execute share trade) only does one thing.
  • Because each service ‘forgets’ after each call, we don’t need to worry about trying to remember what we were doing before.
  • Because we have no memory, services are very scalable; we can make several copies of the same service and put them in a pool. Any client can talk to any service - no waiting for a particular server to become available.

Soa Service

So that’s Service Orientated Architecture (SOA) : programs that do one thing (a bit like a function call to a method) exposed that other computers can call. So what’s the big deal? Like all good ideas , a simple concept goes a long way.

Take a look at the picture below. It’s like a Visio diagram, but in fact it’s drawn by the Eclipse Based JBoss IDE. It shows a workflow for an online commerce store - pretty easy to understand. This example uses JBoss Java Business Process Managment (jBPM), but companies such  Tibco, Cape clear and Oracle BPEL have similar products.

soa workflow

Here’s the clever bit; each of these steps is executed by one of the services that we talked about earlier. This means that if the business process changes (and it will), then all you have to do is re-arrange the diagram ; little or no coding changes should be required.

This abilility to mix , match, combine and remix services leads us to a lot of other good things (and we’re only scratching the surface here).

  • Because our services don’t have to run on the same machine, we can use SOA to create a distributed application. This is the concept behind the BPEL (Business PRocess Engineering Language)
  • Services tie well to Ajax and Web 2: Our Ajax web page or portlet can call as many services as it requires to get the job done (it’s one of the reasons Tibcom is sponsoring the open source DWR project)
  • We can call many services at once. If these this service calls are xml based ,or we send these calls as a message then we can filter, duplicate, pass and other distribute these calls as we set. These are the ideas behind Apache Synapse, Apache Servicemix and the  Enterprise Service bus (ESB) in general.

What do you think? Is SOA useful , or over hyped?

related posts

December 27, 2006

Grabbing people’s brains and shoving them into a PC

It didn’t go down too well when an elderly relative asked me over Christmas ‘what exactly do you do?’. After fobbing him off with the usual ’something in computers’, he was shocked to find out that I spend most of my time ‘Grabbing people’s brains and shoving them into a PC’.

This kind of blog-related-violence is normally associated with Twenty-Major (Warning , Parential Guidance required , unless you’re over 80), so before you call the police , let me explain.

Look at your hands. Unless they’re scarred and calloused (from the weekend’s DIY) the chances are that you work in the knowledge economy. You could work for a Bank , Insurance company, Legal company or be a medical professional but most of your work consists of one thing:  You push pieces of paper around that have some magical value.
Or you would push pieces of paper around if it hadn’t all been computerised in the last 10 years. Now you swap files and emails to get things done.  And you swear on a regular basis when the computer can’t find the information you’re looking for, or someone doesn’t understand the email you sent them. But the important bit, the information processing,  still remains in your brain.
Red Piranha Logo

Which brings us to Red-Piranha (site update in progress) and the shoving of people’s brains into a computer. While we can copy an MP3 music file (with Adam’s and Bono’s imagination in it) and send it around the world, but we can’t photocopy your brain. We don’t want all of it, just the part that gets the magical value-added work done. The bits about drinking beer and playing volleyball on the beach we’ll quite happily leave with you.

So this is what Enterprise Web 2.0 is all about : getting the computer to take a load off your brain so that you’ll have more time to spend on the beach drinking beer. Chapter 3 (draft) of our Enerprise Web book has just been put online, which shows you exactly how to do this.

December 18, 2006

Enterprise Web 2.0 - Free Book

Filed under: Java, RedPiranha, Workflow, book, enterprise web 2.0, rp, rules, web2 — Paul Browne @ 6:05 pm

I’ll blog about it in more detail later, but I’ve just posted the first chapter of the Enterprise Web 2.0 book online. It is being written as a dissertation for the Msc. in Advanced Software Engineering in UCD , Dublin. The working title is ‘Financial knowledge capture using Rules , Workflow, Search and Enterprise Web 2.0‘.

Red Piranha Logo

To kill 4 birds with one stone, It also serves as a manual to the updated Red-Piranha project.[link to old website (search only). New website in progress] .

August 19, 2006

25,000 People Download Mans Brain from Internet

Yes, it’s incredible , but true. Red Piranha is everything (well , not exactly everything) that I’ve learnt in 7 years of Java consulting, all wrapped up in a nice easy to go bundle. It’s Enterprise software that gets knowledge out of people’s heads and into a PC (no , it’s not as painful as it sounds!).
Red Piranha Fish Logo

I hadn’t checked the stats for a while , so I’m astonished to learn that 25,000 people have downloaded a copy from sourceforge. What’s more amazing is that these downloads are for version 1 - a sort of ‘mini Google’. As I write this post the latest (beta) version is being made available to developers. This moves it firmly into the Enterprise Web 2.0 space, adding workflow, rules and rich internet application capabilities (including Ajax and mashups) - more on this blogpost.

By the way , if you’re looking for more information on Enterprise Web 2.0 , you can check out Jerry Bowles blog on this area.

July 25, 2006

And the results of the Virtual Java Meetup are …

And the results of the Virtual Java Meetup are … here. Names have been changed to protect the innocent.

If you couldn’t be bothered reading the entire thing , the results of the Dublin Jury on ‘what technologies should I be learning in the next 12 months’ are:

  • Web services are going to be big, but only if they can be simple.
  • EJB 3 and Netbeans are both worth taking a look at again, they are now much better than the previous versions that gave them a bad name.
  • Middleware (e.g. workflow and Rules Engines) are interesting in a corporate environment, but there is a high barrier to entry.
  • Struts , and to a lesser extent JSF , will continue to be dominant Java Web frameworks, despite not being the best technical choice.
  • A lot of companies are still using Java 1.4, but may make the leap to Java 6 (Mustang).
  • Service Orientated Architecuture (SOA) is a nice idea, but not so many projects have been implemented using it.
  • IDE’s (Netbeans / Eclipse / JDeveloper) can deliver a lot of value, but only if backed up by lower level tools (e.g. Ant and Maven).
  • More for the next 24 months , keep an eye on Apache Service Mix.

June 9, 2006

What comes after Java and .Net? Agents.

Filed under: Architect, JBoss, Knowledge Management, Process, Rule Engine, Web, Web 2.0, Web2Ireland, Workflow — Paul Browne @ 8:18 am
Most systems until now have been centralised : A bit like the old Soviet Union, everything is centrally planned. The trouble is real-life isn’t like that - it’s a market economy with no central control. There’s a story about a Russian Diplomat posted to New York in the 60’s. On a visit to a bakery he asked - who decides how many loaves are baked in the city? The answer is no-one - each baker individually decides how many to bake based on how many he sold the day before. Somehow (almost) everybody gets fed.Current OO systems are like the Russian’s view: everything is centrally controlled. Agents are more like New-York (or Dublin) city today - a place full of people (agents) acting in their own self interest. Somehow everything works ok. Economists have a theory that backs this up ; in general a set of people acting in their own self interest gives the best solution at a global level. Or, if you prefer it’s a bit like Ants. Individual Ants are stupid, but together they are clever enough to mark a trail to food and carry it back to the Anthill. It’s called Emergent Behaviour - simple programs combining to give the answers to complex problems.

How does Web 2.0 give a push to Agents? Before, Systems were standalone , and everything planned in advance. With Web 2.0 everything is connected and too complex to manage by one person. We need to look at what works successfully in real life. Just as Market economies overcame the ‘Command and control’ of communism, so Agents will overcome the Command and control of Objects. It may not be perfect, but it will be (slightly) better.

Will agents replace Java and .Net ? A sign that ‘the future is already here’ is that when you read the list ‘what makes an agent’ , you may go ‘but we’re doing that now’. Java and .Net have been around for so long now that it’s easy to forget the Object Orientated Programming (OOP) was once a radical new departure. It’s also easy to forget that languages such as C++, Visual Basic 6 and Powerbuilder were once ‘king of the hill’ and commanded respect from your colleagues when you mentioned your latest project was using them.

So what are agents? Compared to Objects :

  • Agents act in their own self interest , they may decline a request if they think it makes them better off.Objects always respond to a request.
  • Agents have their own thread of control , 1 for each agent. Objects may have their own thread, but most objects don’t. - Agents are pro-active, and seek to improve their lot , according to pre-defined goals.
  • Agents are ‘Coarse Grained’ that is, a system will probably have a few agents will a lot of normal , dependent , objects. It’s similar to the way Enterprise Java Beans are used : not everything is an EJB , and there a still lots of Plain Old java Objects.
  • Objects are designed from the start to work together. Agents can be written by different people , perhaps with widely different goals in mind.

Just like C++ was a procedural language with object orientated ‘bits’ attached, Agents are currently implmented in languages like Java , with agent-y bits attached. Probably the most useful set of bits is Cougaar. Cougaar is an open source project with a live community at Cougaarforge and an Eclipse based IDE. Cougaar gives you the basic infrastructure for creating and managing agents.

Of course , there’s nothing to stop you building your own agents. According to the above definition, most systems that have workflow tieing together entities making decisions according to their own business rules are not far off being agents. Especially when they have a scheduler (i.e. their own ‘thread of control’).

What do you think? Leave a comment below.

May 6, 2006

Architecture? One size fits all

No matter what your system does , be it insurance , banking , online travel booking or telecoms, the chances are it does the following things:

  • Gets information from users over the web
  • Does some business processing on that information
  • Saves the information in a database.

At a conservative estimate , about 99% of Enterprise systems would fall into this category.

If so, why do you need an architect , when you can use our ‘one size fits all’ architecture diagram (below)?! Most non-trivial systems, regardless of the language they are written in (be it Java, .Net , or your language of choice) follow the pattern seen in this diagram.

3 Tier Enterprise Diagram

There are 3 Pieces to the Solution:

  • Web Browser (for the user / client).
  • Web and Application Server - carry out business logic.
  • Database Back End - to store data and ensure data integrity.

Within the Application Server (the middle bit above, which as Java Architects is the bit we are interested in), there are a further 3 tiers

  • A Presentation tier (or layer), which is mainly about talking to the user (it gets and sends requests to the web browser).
  • A Service layer , which is mainly about talking to back end such as databases, legacy systems (such as mainframes) and XML-Web services that we may use.
  • A Business layer, the ‘meat’ of the sandwich, where the ‘Value add’ is in terms of business processing and validation.

For each of these layers , your priority in building them are slightly different.

  • The Presentation layer is the bit the user sees. You want it to be fast and give a good impression to the client. Underneath, use a standard framework (link: pick your framework here) and then customize the look and feel.
  • The Service layer you want to work fast and well (e.g. no data faults), but then then forget about. Unless things go wrong, no user is going to complement you on the quality of database persistence! Use standard libraries for the entire layer.
  • Unless your company is a clone or franchise, the business layer in the system is going to be completely different. Aside from the user-interface , concentrate most of your project effort here as this is the core of what system does. We’ve written quite a bit about how to increase the value-add of the business layer (link to O’Reilly Technical Articles)

By the way , we’re only half-joking about the ‘why do you need an architect’ bit. We can be contacted here.

February 21, 2006

JBoss Workflow JBpm and JBoss Rules (Drools)

Filed under: JBoss, Process, Rule Engine, Technology, Uncategorized, Workflow, Xml — Paul Browne @ 7:04 am

Notes from this Post on the Serverside

 I recently wrote an O’Reilly article on one of the related JBoss projects the Drools / JBoss rules engine.

Just to get the difference between jBPM and Drools / JBoss Rules straight in my head:

- Workflow tends to be ‘wide’ where Rule Engines tend to be  ‘deep’.

- Workflow is wide as the flow is spread over different people / actors and over time.

- Rule Engines are ‘deep’ as they apply simple rules to solve complex problems, but in general the rules are applied ‘all at once’.

Some of the confusion (in my head at least) comes from the fact:

- It is possible to implement workflow using a rules engine, much as it is possible to write your own workflow using Java. Of course , you don’t get the graphical designer that JBpm has.

- Both JBoss Rules (Drools) and JBoss Workflow (jBPM) see to
‘externalize’ part of the solution outside of Java. By stepping outside
of Java to use an XML / Graphical based approach, it makes the solution
easier to configure and understand.

February 17, 2006

Enterprise Java Workshop in Dublin

Link to Enterprise Java Workshop, to be led by Dr. Bruce Martin in Dublin on the 6th - 9th March.

Is anybody going? Is it worth $1995 USD for 4 days? (and I’m not going to get sniffy about us using Euro over here :-) ) Who is this course aimed at? In some ways this course is like Corba: very relevant to the very small niche that use these technologies, but the broader line of ‘best practice’ has moved on.

An extract from the Agenda is below. It seem to broadly match what Sun looks for in it’s Enterprise Java Architect Certification. As such it shares the plus and minus of this approach : You get the Orthodox Entreprise Java Approach, or at least the approach being plugged by Sun about 3 years ago.

The trouble with this approach is that the Enterprise Java world has moved on. Hibernate has pushed aside Entity Beans , so much so that Enterprise Java Beans 3.0 is a complete turnaround it it’s direction. Spring has got a lot of traction as an EJB-Lite (and I mean that with the most positive connotations). Enterprise Java Patterns are much better understood (just search the IBM site), if not more widely understood.

Where’s the Ajax and the impact of multiple, small , web requests on application scalability? The JSON (as part of the Web Services)? Does it cover Java Server Faces and the emerging Ajax enabled Java Presentation Frameworks? What about workflow and rule engines and Java Messaging Services (JMS)? How about the tool integration to make your teams life easier when building the designs that you , as an Architect , have come up with? I don’t see Security in there , nor any of the other JSR (Java Specification Requests) that have come out of the broader Java community in the last 3 years.

And that’s before I go on about the only ‘technology alternative’ being offered is .Net - the PHP , Ruby and Oracle guys will have something to say about that! All have strong cases to make on a project by project basis. What about off the shelf products (both open source and commercial) that could , depending on the project, give you most of the functionality you need and you just have to customise the remaining 20%?

Maybe I’m being unfair, and the above is not the aim of the course.

For info, it’s on in the Gresham hotel on Dublin’s O’Connell Street from the 6th to the 9th of March. If you want a good solid foundation in Enterprise Java, and if somebody else is paying for it then it’s probably to be recommended. It might even help you get certified as a ‘Sun Enterprise Java Architect’. But unless you’re in an outstanding group, don’t expect it to be cutting edge.

Are you going - prove me wrong and leave a comment!

Project Module

  • Introduction
  • The Value Propositions of J2EE and EJB
  • J2EE vs..NET
  • Requirements of the Auction Application
  • Group Discusssion: J2EE or not, EJB or not
  • Activity: Identify the Auction Objects
  • Vertical Slices
  • Activity: Identify Vertical Slice
  • Communicating Architectures

Persistence Module

  • Pros and cons of JDBC
  • Object Relational Mapping
  • Java Data Objects (JDO)
  • EJB 2.x CMP Model and Relationships
  • EJB 3
  • Other O-R mapping solutions
  • Group Discussion: Persistence Matrix
  • Activity: Persistence Strategy for the
    Auction
  • Advanced Transaction and Concurrency
    Control topics
  • Activity: Identify the Transactions

Scalability Module

  • Principles of Scalability and Fault
    Tolerance
  • Application Server Clustering solutions
  • Activity: Scaling the Auction

Integration Module

  • Messaging
  • Activity: Messaging in the Auction
  • Connectors
  • XML, Web Services and SOA
  • Activity: Enterprise Application
    Integration
  • Activity: B2B Integration

Application Design Module

  • Top Ten J2EE Design Patterns
  • Activity: Design patterns or not
  • Activity: Complete the design
  • Group Discussion: Custom Consulting

January 30, 2006

Watch out Java - Windows Workflow is coming!

Filed under: Dublin, Ireland, Knowledge Management, Process, Rule Engine, Workflow — Paul Browne @ 1:00 am

Workflow is core to most business as it describes the core of what they do. Workflow can be as simple as ‘Search for Flights, Select Flight, Pay, Recieve Email confirmation’, to something much more complex (e.g. a Mortgage application). Many systems already have workflow in them, only they don’t know it. The problem is then that the Business People (who understand the workflow) can’t see how it is implemented in (hidden behind code), while the technical people don’t understand the business process. Workflow (closely related to Rule Engines) aim to solve this problem.

I recently attended an Irish .Net Developers presentation by Aiden O’Connor(long story), about the new Windows Workflow, currently in Beta as part of Microsoft .Net. While workflow in Enterprise Java is nothing new (Serverside Article), the implementation of Workflow in Visual Studio will bring it’s ideas to a wider audience, and force the Java workflow people to ‘raise their game’.

So, why should you be interested in Windows Workflow?

  1. Visual Studio has always had ‘Drag and Drop’ building of Systems. Now it will also have ‘Drag and Drop’ flowcharts (it looks a bit like Visio or other drawing tools). When the process hits a stage an Event is triggered and appropriate code called (e.g. similar to a mouse click on a form).
  2. It is likely that Business Analysts will use a Visual design tool to draw up the workflow. Programmers will then handle events at each stage in the workflow - a much easier process as they just have to concentrate on a single step, and not worry (so much) about the bigger picture.
  3. Long lived workflows and processes can be handled easily. For example, if we have issued the ticket and are waiting for the customer to check in (weeks later), state will be persisted automatically.
    It brings the workflow ideas from a niche to a wider audience. Even the Java based frameworks will benefit from this.

  1. It is part of the .Net framework - the equivalent in the Java world of it coming free with the JVM. It will run anywhere .Net does, and one workflow can span multiple machines (this was buggy in the beta, but it is a known issue).

January 9, 2006

CRM Experts predict 2006

Filed under: Business, Knowledge Management, Office, Oracle, Process, VOIP, Web, Workflow — Paul Browne @ 6:15 am

TechTarget is running it’s CRM predictions for 2006. Among the top predictions are:

  • CRM (Customer Relationship Management) will become less of a standalone function, and even more highly integrated with business process.
  • SugarCRM (Open Software) will make it’s breakthrough into the mainstream (we told you so).
  • SugarCRM will not only become a viable alternative to low-end Oracle and SAP , but also to online services , such as SalesForce.com
  • Voice over Internet (VOIP - think Skype) will become increasingly important in the  call-center.

November 1, 2005

Wired Article - The Long Tail

Filed under: Business, ERP, Retail, SAP, Workflow — Paul Browne @ 1:59 pm

Before I got into IT, I was involved in Supply Chain Management - the stuff that gets your Cornflakes from a farmers field to your breakfast table.

One of the biggest problems in retailling has been an abundance of supply - unlike the previous 100 years where you could ‘never get anything in Ireland’ , be it staple foodstuffs or the latest Gucci Handbags, these are now available at Brown Thomas and shops all over Dublin (the Handbags, not the potatoes).

Unfortunately, shelf space can’t increase at the same rate, so most shops are stocking only the ‘Hits’ - the products that appear to the lowest common denominator of the mass market. This is a problem if you music tastes go beyond ‘Busted’, if you want an extra special Christmas present or or part for your Hifi that ‘they just don’t make anymore’

Step forward the internet. If you look at the success stories of the internet - Amazon, EBay, Online Travel, they all aim at the estimated 50% of purchases that are individual rather than mass market. Read the Wired Article here that explains more.

October 31, 2005

I have seen the future of web applications and it is ….

Filed under: Ajax, Business, Development, Knowledge Management, Process, Technology, Web, Web 2.0, Workflow, Xml — Paul Browne @ 2:00 pm

Jotspot . It’s not that it is very much a Web 2.0 company. It’s more that it draws together a lot of previous ideas into one easy to use package.

  • It’s easy to use - if you can use Microsoft Office , you can use JotSpot
  • It’s easy to develop - ‘Power Users’ not developers can do it (the sort that come up with fancy Excel Spreadsheets).
  • It’s web based, is available everywhere and uses a very fluid Ajax interface
  • It can be easily extended , so all the people currently playing around with PHP and websites can get up and running more quickly.
  • It’s free, with a more powerful commercial version

Other ‘out of the box’ features include being able to import Excel Spreadsheets and have them available as online applications. It also comes with ready build applications such as CRM , Project Management Tools, Colloboration Tools etc

Jotspot is exactly the sort of ‘Component based Architcture’ that Java Developers have been aiming towards. It ties the portability of Java, the ease of development of Visual Basic and the promise of Lotus Notes. It also has a full set of easy to use XML API’s , so a wave a client applications tied into a Jotspot server is not far off.

October 30, 2005

Do Software Patents really Affect you?

Filed under: Business, Development, Knowledge Management, Process, Project, Technology, UK, Workflow — Paul Browne @ 2:00 pm

The Economist is running one of it’s in depth Surveys on Software Patents and the Market for idea’s. Some of the content is available online but here is the 10 second version:

* The market for idea’s is one of the key drivers of Economic Growth.
* Large Companies are gathering Patents as a means of defense against other people enforcing patent claims on them.
* Patents , if used unwisely, can be a bit like the tolls that used to be charged travellers - good for the local warlords but bad for everybody else.
* Many large companies , including IBM and Novell are donating Patents to Open source as a means of helping the open software , and hence their own , interests.
* As other countries (e.g. China and India) gather their own Patent portfolio, the attitude to Patents and Copyright, instead of one way traffic, will become more balanced - for example the US Cogress was ready to forcibly licence an anti-anthrax drug from a German Company post 9-11. Expect

A good forum for expressing your views on Patents is Digitial Rights Ireland.

March 8, 2005

ERP and CRM Solutions

Filed under: CRM, ERP, Knowledge Management, Oracle, Spring, Workflow — Paul Browne @ 2:30 pm

80% of Java projects end up build the same thing over and over (Web-Java-Database).

There’s frameworks out there (e.g. Struts , Spring and Hibernate) to reduce the effort , but Compiere goes one step further - it gives you a complete ERP (Enterprise Resource Planning) and CRM (Customer Relationship Management) solution in a box , which you can then customize for your end client.

Compiere is very good ,as befits a project that is consistently in the top 10 on sourceforge. So , if you have any interest in Java and Oracle , you should check it out at www.compiere.org. Worked with this product in my days with firstpartners.net in Dundalk , Ireland , and good as it was then , the product has matured a lot more (included Database independence)

Powered by WordPress