What is BPMS? and when to go for BPMS? is there any free tools for .net or java? is there any plug-in available for eclipse?
It is short for Business Process Management System or Software and basically is a tool for very high level modelling how the business will do whatever they do and how automation tools are integrated.
These things are typically huge and composed of a big collection of tools and infrastructure stuff. Eclipse based tooling may be a part of that, but it is much larger than just a plugin.
If you want to dip your toe in these waters you might look at JBoss Tools which has support for JBPM and Webservices which is a workflow package and the infrastructure which is usually core to these systems.
Good Luck!
As Peter said, BPMS is a huge topic. To get an idea of its scope, check out IBM's home page on it here: http://www-142.ibm.com/software/products/us/en/category/bpm-software
Have a look at the Activiti BPMN 2.0 engine. It is still in beta but a project everybody interested in BPM software should know about. It is implemented in Java and an Eclipse plugin also will be part of the set of tools.
Stardust, the Eclipse Process Manager,is a comprehensive and mature BPMS which is part of the Eclipse release train since the Kepler release. With over 2.5M lines of code and 726 person years Stardust is the largest Open Source BPMS.
As opposed to many Java-centric BPMS, Stardust also provides proven .NET integration capabilities on servcie and UI level.
The process modeler is avalibe for Eclipse or purely browser-based. The runtime environment can be used from inside Eclipse (WTP integration) or standalone (maven build).
Please see http://www.eclipse.org/stardust/ for more details.
Best regards
Rob
BPM - Business Process Management is a systematic approach to streamline an organization’s process to make it efficient and effective, to suit the changing environment around.
Related
Please give an advise on how to do "plugin" architecture for Java web application.
Currently we are using quite simple and standard Spring+Hibernate+Struts 2 in Tomcat servlet container. (Built with maven)
I need something like Redmine. Where any module can be enabled/disabled, updated
Please exclude heavy options like OSGi, Portlet.
OSGi is too heavy, there is no good adoption of the technology for web. I already looked at Eclipse Germini;
Portlet it just old, and never was popular.
I will try to provide several possible solution. I did spent some time preparing small PoCs for the project I'm working on, so let's hope the options below are relevant.
Important note: it is really easy to define some extension point, do resolve and find available implementations. There are a lot of solutions available, for example good and simple one -- JSPF
Resources are the main problem for WEB applications
OSGi
OSGi, is not that bad and can be useful. It seems to be heavy (and some implementations are heavy) but this is price of standardized platform. I would suggest to check Apache Felix. It can be used in a "lightweight" mode. By the way, it includes Web Console which is build as loosely coupled plugin-based application, could be helpful:
Some examples Extending the Apache Felix Web Console
The Web Console can be extended by registering an OSGi service for the
interface javax.servlet.Servlet with the service property
felix.webconsole.label set to the label (last segment in the URL) of
the page. The respective service is called a Web Console Plugin or a
plugin for short.
You can also check eie-manager which is clean and simple and uses OSGi to manage plugins. Could be a good example for you.
Custom plugin framework
I would suggest to review solution behind Jenkins/Hudson. I would say Jenkins plug-in system is quite mature and reliable. Can be used as a good example.
Please also check Hudson Plugin Architecture
Simple solution
For my project I've build plugin abstraction layer based on JSPF with custom dependency resolver.
PROS:
simple and small
clean concept
works good
CONS:
without proper plugin management can be slow (full classpath search)
provides very basic functionality
may require additional attention
I would suggest to use JSPF only if you really need some simplicity and want to control everything. JPF provides a lot of interesting features out of the box, for example:
Plug-ins can be "hot-registered" and even de-registered during
application execution. What's more, registered plug-ins can be
activated and deactivated "on the fly", minimizing runtime resource
usage.
The problem is JPF is dead.
Suggestion
Do spend some time with Apache Felix. It is mature enough, so your time investments may pay back a lot.
Check out the answers to this question: Best way to build a Plugin system with Java
If you don't trust the plugin code, you can implement sandboxing, as described here: Sandbox against malicious code in a Java application
The open-source Java Plug-in Framework project supports plugin deactivation, you can get inspired from it even if it is too heavy for your purposes.
Atlassian open sourced their plugin system here. I see it is being worked heavily by Atlassian team. Worth to explore its documentation
I need to choose the right CI build tool which will:
Support groups of build configurations so we can use the standardized build process for all our projects
Support dashboard with "pretty" (for executive/director "eye" :-) reports.
Support Java, Maven, Ant, and be somewhat customizable for build process itself (though this is optional, as I can "fix" it with scripts)
I'd prefer free and open source tool, but paid version is fine too.
Please help :-)
It sounds like you're looking for Hudson. It already has built in support for Maven and Ant.
You may want to look at it
http://www.thoughtworks-studios.com/company
ThoughtWorks Deployment Management Solution combines the power of
Twist (Agile testing) with Go (release management).
Twist captures the requirements to be
tested directly from business users
and then supports their automation as
long-term tests that evolve with the
application. Go helps development and
IT operations teams model release
processes and deploy software
repeatably and reliably.
Continuum has rather good support for groups and rather straightforward test execution
Do you know any product like Microsoft Team Foundation Server 2010 that solves the parallel
development pain/conflict for Java EE development?
subversion + jira + wiki ...
I have no experience with Microsoft Team Foundation Server, but a combination of source control, continous integration (like Hudson) and a good issue tracker / collaboration tool (like Trac) gives a good overview of current activities / quality over time / current issues / progress while allowing for collaboration through wikis and the issue tracker. Mailing lists and an IRC channel can be a good additions for more permanent and live discussions respectively.
In my opinion Trac is really nice since it is easy to use, has a 'team timeline' and shows great information - code diffs along with issue numbers and developer comments bundled together - giving a great 'togetherness' feeling in the team.
The continous integration solution can provide many different code and quality metrics over time without manual intervention. Great for management.
If you don't mind to pay for good products you can look at Teamcity & Youtrack by Jetbrains. They provide useful tools for team programming.
If you work on an open source project, you can give a try to Hudson & Jira.
And Subversion or git will be a good way to manage your sources.
(Teamcity is free for an open source projects too)
Saros - Distributed Collaborative Editing and Distributed Party Programming
Pretty cool, just requires eclipse and a xmpp server.
I'm currently working in a team of 15 or so Java devs. I don't feel any pain of development. This is an environment using Maven, Subversion & Atlassian tools mainly. Maven makes it comparatively easy to build even large projects. Subversion does a decent job of updating & merging where necessary. Atlassian tools handle bug tracking, code review and automated builds but cost $$$. You could get by with Bugzilla and Hudson.
If by parallel you mean everyone gets their own branch then I suppose you could go with Clearcase but get ready to kiss your budget, sanity and productivity goodbye. Git might be a better choice for that kind of thing.
We're starting a project written in Java in a company which works purely on MS technologies. Microsoft Team System is used as source control tool. A question is whether we should try to integrate Eclipse with MTS (which makes sense from the top level as there would be still a single repository for the company) or we should try to setup another source control tool - most likely Subversion (which makes sense from developers perspective)?
Anyone tried to marry Team System with Java projects? Does it makes any sense?
You can use Team Foundation Server with Eclipse with Teamprise.
As for whether it makes sense or not depends on the environment. If you are one of many projects, just one that happens to be Java, it does not make sense to reinvent the wheel and implement SVN, unless the business is making a clean deliniation between Java projects and MS projects ... and realizing they have two places to get metrics for projects, which can be nasty.
I would vote on TFS, personally, as there is already an investment in TFS.
I work on a project that uses eclipse and teamprise to use TFS with java. While the experience isn't perfect, it does work fairly well.
Since your company already has an investment in TFS I would stick with that if you and your team have comfort with TFS as a version control system. However, if you are comfortable with subversion and not with TFS, then I say just make the switch to subverison and you won't look back.
My team is in a similar situation...our company has recently standardized on TFS for source control, and we are a Java group (with many other teams in my company being Microsoft...thus the decision to go with TFS). We are migrating from VSS, so we're actually pretty happy to get to a more modern system (although I would have preferred SVN).
We use IntelliJ IDEA, and with version 8.1 they now have integrated TFS support. So far it seems to be working quite well. We also use Hudson for our continuous integration server and there is a nice TFS plugin for that, too. From our Ant scripts we are using the free Teamprise Ant Tasks when we need to access TFS.
One thing the might be helpful if you end up using tfs (but not teamprise) is the Team Foundation Power Tools 2008 adds Window Explorer extension support (although I wish it has ‘get specific version’ as a menu option)
http://msdn.microsoft.com/en-us/teamsystem/bb980963.aspx
From the above link...
"Windows Shell Extension - Allows core version control operations within Windows Explorer without using Team Explorer."
It's free now (after March 2012).
Microsoft.com; Download
We're in an early stage of a new web project. The project will grow and become complex over time. From the beginning we will have unit and integration tests using JUnit and system tests using HtmlUnit. We might also add some static code analysis tools to the build process if they prove to be of value to us.
If you're or have been involved in a project which uses continuous integration. Which software do/did you use and do you think it has payed off? Which software would you recommend for continuous integration of a Java web project?
Hudson (the best). Hudson Website
JetBrains TeamCity Pro. http://www.jetbrains.com/teamcity/index.html
The Professional Edition does not require any license key. TeamCity starts running automatically with the Professional Edition Server if no license key is entered in the program. A single Professional Edition Server installation grants the rights to setup:
3 Build Agents at no additional cost
20 User Accounts
20 Build Configurations
Having used both CruiseControl and Hudson , I can recommend Hudson as the easier of the two to config (easily done via the web GUI, though direct configfile editing is also supported).
Hudson is great and free:
http://hudson.dev.java.net/
Bamboo is great but costs $$
http://www.atlassian.com/software/bamboo/
I've been very pleased with Atlassian's Bamboo. Even though it is commercial, the Starter Pack license is just $10 for 10 users. It's very well documented, easy to set up and flexible.
CruiseControl works reasonably well once you get it configured.
http://cruisecontrol.sourceforge.net/
I've used CruiseControl for Java projects, and CruiseControl.NET for .NET projects, and both work great.
I setup CruiseControl for a project that's been running for 4 years with several dozen developers, and while the configuration has been tweaked several times in the interim, it works great. (I don't actively support that project anymore, but I still work with the people who do.)
In my current position, CruiseControl.NET is being used to support several .Net projects, and has been used for 2+ years.
CruiseControl
CruiseControl is both a continuous integration tool and an extensible framework for creating a custom continuous build process. It includes dozens of plugins for a variety of source controls, build technologies, and notifications schemes including email and instant messaging. A web interface provides details of the current and previous builds. And the standard CruiseControl distribution is augmented through a rich selection of 3rd Party Tools.