Which workflow engine to choose? [closed] - java

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
We are currently in the process of evaluating a BPM engine and I'd really appreciate the community input. I am doing my own due diligence but would also like to hear on the suggestion based on implementation stories.
My main evaluation criteria are below
open source and OEM friendly license
production installations (success stories are a great help)
commercial support available
open standards support - BPMN
dynamic creation/assembly of the workflow based on input
embeddable
Currently I am evaluating Activiti and JBPM. Bonita open BPM seems like a good candidate as well but never used it. Do you guys have any successful deployments on Bonita?

I've just been doing an evaluation of Activiti vs jBPM.
In fact there seems to be very little between the two solutions.
Activiti is Apache V2, jBPM 5.0 is also Apache V2.
We're currently using Activiti, but the project is still in dev, so I can't comment on its robustness in production.
jBPM is beginning the productization process, so support for 5.x will be available in Q1 2012, see slide 32: jBPM demo. jBPM 4 was not supported by Redhat.
jBPM 4.x did not support BPMN 2.0, but 5.x does, Activiti does as well. jBPM 5.0 has just been released, which includes support for BPMN 2.0. So now both solutions support BPMN 2.0.
I'm not quite sure what you mean by this, but you can do a lot through both APIs
Again, not sure what you mean by this, do you mean embedded as part of an application server, in which case, yes for both solutions.
One of our criteria for jBPM was the interaction with Guvnor, and when I downloaded and ran the demo install for jBPM (28/03/2011) and there still seemed to be some major bugs (GUVNOR-1274), so I personally would test a lot more before I chose to pursue this solution.
In fact, we will be recommending one of the above two solutions, but we're not sure which yet, we'll look at it more closely later this year.

Although I have little practical experience I did undertake a research spike into java BPM options recently. I narrowed it down to 3:
jBPM
Drools
Roll your own
The Drools community seems more active, tools are better, the rules engine was very sophisticated (as this was the base of drools) but surrounding business process were well integrated. However jBPM was more focused around business processes and slick as well. They are both managed by JBoss
Further comparisons between Drools and JBPM can be found here:
Drools v jBPM
If you have a confident development team and the requirements aren't too complex it is always worth considering rolling your own. BPMs can lead to anaemic domain models (as described in this post Rules Engine pros and cons about rules engines ) as you try adopt your domain models to fit into such systems, also well built systems customised for your business are always going to be more effective.
As far as your criteria goes:
Open-Source and OEM friendly license - Drools uses a liberal 'ASL/BSD/MIT-esque license', community is active. jBPM uses apache, eclipse and MIT licenses
Production Installations. I understand drools is used by many insurance companies and credit checkers, not sure a jBPM
Commercial Support available for both
Open Standards Support - BPMN - Both implement BPMN and due to the nature of the open source projects are very standards orientated.
Dynamic Creation/Assembly of the Workflow based on input. Both, although is generally easily implemented manually.
Eembeddable - both offer entire systems but are modulated so this should suite embedding into existing systems.

My not use an MS stack? WWF 4.0 for the engine, re-hostable designer. WCF for communication. MS Sql Server for BI. Plenty of .NET devs out there to help build and customise. Other than a Windows target, no dependency on an external supplier.

Related

Good Java application server for ORM [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I just had a chat with a far more experienced and qualified colleague about JPA and application servers.
Right now, I am using JPA with Glassfish, which he says is a bad application server due to the amount of overhead. He also mentioned that he's using Tomcat, which is a standard, which also has a downside of not supporting heavy-weights like JPA in the Java EE. Then a few names are thrown around, like Hibernate and Spring, which I've heard of but not dealt with.
So my question here would be: What are some good choices for an application server that supports Java EE and JPA that's also popular and fast?
Note: I asked a similar question in the past and it was, somehow, closed as non-constructive. If you find this to be a non-constructive post, please write a response detailing why before closing this.
What are some good choices for an application server that supports
Java EE and JPA that's also popular and fast?
What server you choose depends on your needs. If you don't need in your application any of the EE features (EJB, transactions etc) then using a heavy-weight server doesn't make much sense and you could opt for Tomcat which is compliant (partially to the specs) lighter (doesn't have all these dependencies that you would not be using anyway) and gets the job done.
If you want specific reviews about all application servers then may be you should do some research and see ask which server suits you better for your requirements. But this is just my opinion...
I'm using Jetty with JPA Hibernate implementation, and it works really well. Out of the box, it is only a subset of JavaEE specs, but it is lightweight and can be extended with external libraries to add missing JavaEE parts.
(My standalone jetty-based application runs with 160MB available RAM on an embedded system)
As per me : The JBoss is the most popular and stable open source application server.
A good discussion available at Stack Trace
I would recommend you to first understand your application needs, and understand why you need JPA.
I have nothing against JPA, but in some scenarios it may introduce a performance issue, that you don't want you application to have.
Having said that, I would recommend you to work with a server that supports EJB-Lite.
You can use for example JBoss as suggested above.
Another interesting option is to use TomEE , which provides a full stack of web-profile over tomcat.
You can use JPA outside of a full Java EE server, but it has to be properly bootstrapped. I believe Spring has ways to do this, and would allow you to use JPA in tomcat, jetty, etc...
You have many options to choose Java EE application servers. Here is the comparison of popular Java EE servers from Wiki. They all are good application servers. But the most important thing is not server.Using a server that is more convenient for your developing environment is more important. Choose a server that is more convenient for you.

What development stack should I learn to move from ASP.NET development to Java? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
So here's the story: I currently work as a C# developer doing ASP.NET. While I like C# I don't like the overall quality of the .NET community; most of my past experiences have been that many .NET developers are totally ignorant of actual software engineering (e.g. design patterns, code separation, etc.). The Java area seems a lot better in this regard even if you do have to put up with the occasional "architecture astronaut".
My actual question is this: I can pick up the Java syntax easy enough since I already know C#. However, I've only worked with the full Microsoft stack for web development (WebForms, although I've looked a bit at MVC and I've done some Ruby on Rails demo stuff so I know MVC fairly well). If I want to learn enough marketable skills to be able to apply for junior-level Java development positions at companies, what stack should I look at? There are dozens of Java web frameworks out there; what would be the most common one used in companies? It seems that Hibernate is the default standard for persistence (I've done a little bit with NHibernate) so I'm okay with that. I've also seen several new Java web frameworks that seem interesting, but learning them won't give me a leg up in applying for a job at a company because I'm bettering they're untested in the corporate world and aimed at startups and similar like most new frameworks.
Which framework would be the most likely to be used at a typical company that I should start to learn in order to begin a transition to a better quality community?
I'd actually recommend that you start by learning straight JDBC for database access and servlets+JSP for the web front end, and using those to implement a (very) simple web app. JDBC is the API on which basically all other Java database libraries are built, and likewise for servlets. These will require the least configuration necessary to get your app running. Once you've done that, you'll have a better foundational understanding and can take a look at:
Hibernate with JPA for persistence
Spring for dependency injection
One of the many web frameworks - Spring MVC, Struts 2, JSF or Seam are all viable
Java EE components such as EJBs.
If you're looking to do this on a full-blown Java EE container, I'd recommend using Glassfish as your server. But Tomcat is simpler (just a servlet container), and might be better for starting out with the first project.
Get familiar with Apache and JSP stuffs would also be helpful in addition to the answer above.

Are there any new/updated Java web development frameworks to watch for? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I know recently Spring 3.0 was released which brought about a nice new set of features and ease of web development with their MVC package. However are there any new frameworks on the horizon and/or new versions of other frameworks that a web developer should have their eyes on?
I heard about the Stripes framework, but it seems as though development has stopped. It also seems grails has a new release coming out as well which that looks like it is just an update to support the new features in the latest groovy release.
Apache Wicket - light-weight component-based web application framework with strong separation of presentation and business logic.
Look also at the Spring Roo and Play framework and I almost forgot about the Vaadin. There are often enough new/upgraded java web frameworks:)
Have a look at JSF with JSR-299 in the Java EE 6 standard. You can do quite a bit, and it is standardized.
Version 2.0 of the Google Web Toolkit was released back in December. Some of the new stuff:
Development Mode: Previously you needed to use a "hosted mode" pseudo browser to quickly test your code (i.e. avoid a compile/deploy step). In 2.0, development mode allows on-the-fly running and debugging in any browser. This give big wins in speed and tooling (you can use Firebug etc.)
Speed Tracer: A plugin for Chrome that gives you highly detailed performance profiling for your GWT (or any) client AJAX code.
Compiler Optimizations: One of the great things about GWT is that the compiler is improved almost with every release meaning that you get a performance boost just by recompiling your code.
Code Splitting: You put 'splits' in your code, allowing the browser to download just the code it needs to get started and download the rest when it's needed (great for apps with very large amounts of client code).
Declarative User Interfaces: Define UIs in XML. Much less boilerplate code. XML<->Java integration via annotations.
Layout Panels: Improved, standards-compliant, base panels.
Bundled Resources: Image bundling from previous resources has been generified to allow any type of resource to be "bundled", reducing the number of requests the browser makes and allowing your app to load more quickly.
GWT works especially well with a good IDE (Eclipse or IntelliJ) since the IDE can take advantage of compile-time information from GWT, validating, on the fly your client code (since it's Java) and also things like CSS class name references and references between XML UI definitions and backing code.
I thought it was worth noting this as I just heard about the new release on java lobby. The
lift framework. It is written in scala, which is java per say.
Appfuse - Not really a framework, but it might be worth a look if you're looking for something to ease the initial ramp up effort on a Java EE project. It provides a bunch of Maven 2 archetypes that will create a "ready to run" application based on any of:
Struts 2
JSF
Tapestry 5
Spring MVC
Struts 2 is also very much worth a look. Totally different animal to Struts.

Good e-commerce platform for Java or .NET [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm looking for an e-commerce "platform" in Java or .NET that can satisfy the following requirements:
Product / Service Management
Customer Account Management
Shopping Cart
Checkout / Merchant Integration
Localization (especially for currency)
Coupons
Multiple Storefronts
Reporting
Possible PayPal / Google Checkout Integration
The goal here is to integrate this with a RIA written in Adobe Flex. We are comfortable with writing a thin backend layer to support the Flex app, so the solution doesn't require a remotely-accessible API, rather just one that we can invoke from our own backend code.
I used ofbiz for some projects, a joyful experience. It's now under the apache umbrella: http://ofbiz.apache.org/
From the website:
The Apache Open For Business Project
is an open source enterprise
automation software project licensed
under the Apache License Version 2.0.
By open source enterprise automation
we mean: Open Source ERP, Open Source
CRM, Open Source E-Business /
E-Commerce, Open Source SCM, Open
Source MRP, Open Source CMMS/EAM, and
so on
I used it to build an ecommerce application to sell customized products to consumers. I used the webshop part, the production planning and warehouse management.
Beware that it takes some time to dig into this huge framework but depending on your actual needs it will be worth it. There is also decent commercial support by a lot of service providers.
Look at nopCommerce - http://www.nopCommerce.com
Broadleaf Commerce... It's free, open source, and enterprise-class. Version 2.0 is simple to set up and configure out of the box. It also allows you to customize, extend, and integrate in absolutely any way that you need. We were able to get a complex, highly customized site with a large number of custom features, including flash sales and perishable inventory, deployed to production in 6 weeks. http://www.broadleafcommerce.com
SoftSlate Commerce meets nearly all of those requirements (with the exception of multiple storefronts, but you could run separate instances side by side). Full Java source code comes with the $495 Standard Edition license.
we do java development and are using shopizer it is a sales management software and also supports online invoicing
The Beerhouse (OS) for .NET might be worth a look. It's an ASP.NET starter kit, however there is also a paypal commerce kit that accompanies it. I'm not sure about coupons and flex integration however.
All the kits can be found here.
Websphere Commerce Supports almost all of your requirements(except paypal integration).
I tested and trust those (.Net):
aspdotnetstorefront
nopcommerce
Asp.net E-Commerce post and about java my favorite is http://www.konakart.com/
Freeblisket/Weblisket
Both platforms good for what you are looking.
Decision is based on personal preferences and which platform you have experience.

Which is the best Open source application server? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
We are looking for a open source J2EE Application server for log budget deployments. We are considering JBoss and Glassfish. Which is the best open source application server? Any comparative study available?
JBoss has been used in production environment for over 6 years now.
Glassfish's codebase is over 10 years BUT most of the code is recent. Glassfish v3 (still in beta) has a microkernel (so is Jboss 5) architecture.
Glassfish has command line tools and a nice console. Since Glassfish is from sun, usually it will work well with the latest version of JDK/J2EE -- currently JDK 6/J2EE 5.
Glassfish should work well in windows, solaris and linux. Jboss(from redhat) should work just fine on linux, windows for sure.
community : a much much bigger community around Jboss. Glassfish still forming its community. Books and other 3rd party products are available for JBoss but not for Glassfish.
If something is mission critical and you need to get it up and running right now, you will NOT go wrong going with JBoss. However, if you have some time, in the long run Glassfish will NOT hurt you. Especially, if you're targeting Solaris.
After using JBoss from the very beginning and then switching to Glassfish in the last 6 months, I can honestly say that Glassfish is fast, reliable and full-featured. I would never consider going back. Im not talking "PetStore" here, my experience with these servers is in the high-transaction online stock-trading arena.
I'm sure the answer depends on your specific needs. You won't go wrong with either Glassfish or Jboss. I tend to prefer Glassfish because of the nice admin console. My advice to you is that you draw you requirements and test both app servers. Most benchmarks I find on the net tend to be a little biased.
A comparison table between JBoss, Geronimo and Tomcat for latter 2007.
This article has many interesting points to aid your decision and is worth reading:
Geronimo 2 is the clear choice if your
Java application needs are
particularly extensive or if you just
want to leverage total Java EE 5
compliance. Although JBoss 4.2 is not
completely compatible with Sun's Java
EE 5 standard, the JBoss 4.2 team is
responsible for many of the
cutting-edge technologies used by all
of the servers and added to the
standard Java EE 5 capabilities.
Tomcat 6 by itself is a lightweight
solution. It does not come with all
the Java EE features and additional
packages found in JBoss and Geronimo,
but also doesn't require much memory
and runs fast even on smaller servers.
In conclusion the author says:
Bottom line: JBoss, Geronimo, and
Tomcat are reliable, fast, and
definitely able to handle the traffic
on large-scale enterprise
applications. Furthermore, many of the
high-demand Java server technologies
presented in the features comparison
originate from the open source world,
not the commercial one.
I would consider any bells and whistles you might be interested in. JBoss has a lot of nice integration points with frameworks, such as Hibernate, but has a history of not playing well with Spring. Both very useful frameworks, both code change your decision on how you might proceed.
Websphere CE is also worth looking at, but over all my vote would be for glassfish. The v3 version is looking very promising.
Karl
I've had great experiences with JBoss 4.x, but unfortunately they seem to have gone off the tracks with their Java EE 5 implementation effort. The fact that JBoss 5 is so late getting to market is extremely disappointing.
The most impressive to me right now is Glassfish. It has a great pace of development, and appears poised to dominate once Java EE 6 hits the wire.

Categories