when will wso2 support bpmn 2.0 - wso2

I am just wondering when is WSO2 planning on supporting BPMN 2.0 in the process engine?
I would expect this to be a priority because its a better standards base than BPEL on which to build business processes.
Would this be either a replacement/alternative for or alongside the BPEL process engine ?
Regards
Steve

Support for BPMN 2.0 is already in the roadmap.
BPEL and BPMN, both for describing and executing business processes, you have the freedom of choosing which notation is to use.
BPEL is well suited to model some kinds of processes and BPMN is well suited to model other kinds of processes, or sometimes you can mix and match within a single composite.
WSO2 BPS executes business processes written using WS-BPEL 2.0, BPEL4WS 1.1 and also it has support for workflows with human interaction (WS-Human Task 1.1, BPEL4People 1.1).
For more information http://docs.wso2.org/wiki/display/BPS300/BPS+Features
Thanks
Thilini

I come across a documentation about the future release of WSO2 Business Process Server 3.5.0 which is the successor of the current released version(3.2.0).
It says that the BPMN support comes with 3.5.0: https://docs.wso2.com/display/BPS350/About+this+Release
It seems that they integrated activiti business process engine with WSO2 BPS: https://docs.wso2.com/display/BPS350/Managing+BPMN

Related

How Web Service should inform about supported features

Different services version could support different features.
For example version 1 of service not support feature x, but version 2 support feature x.
Is there are some standard or practical way to inform which features are supported in current service version?
I think to some way that information could be obtained from commit descriptions. Is there some standard to obtain that information? Or should every service inform about it in own way.
Or should every service inform about it in own way.
Don't do this. This will couple your service with others. Others shouldn't know how to handle your version, but you should know how to handle different versions.
If you use REST and synchronous communication between microservices, you have to look at REST API Versioning or here. This type of versioning allows you to have multiple versions running in the same infrastructure. Then, each microservice should know how to call a specific version of a microservice.
If you have asynchronous communication with an Event Bus, then your Emitter should send backward-compatible events, to not break other microservices.

WSO2: proxy service vs business process (BPEL)

I'm very new at WSO2 stack and wonder when I should use WSO2 ESB proxy service and when – create business process via BPEL?
I think they are doing the same thing – performing a task via services composition and some mediation.
There is a fundamental difference between ESB and BPEL.
The role of ESB is to provide various non-functional properties to the business requests. ESB is thus used for e.g. mediation, transformation, security and virtualization/proxying of the requests. While it can do some simple message-enrichment using sequence diagrams, its primary purpose is to mediate messages between various services/hosts in the system.
On the other hand, BPEL is dedicated to implement business services and handle complex business workloads. Therefore, the role of the BPEL is to provide the functional properties to the business process- e.g. implementing the actual business process logic.
ESB and BPEL thus together deliver the separation-of-concerns which is often emphasized by component and service-oriented architectures.
If you have a well defined long running Business process you need to use WSO2 BPS. You can use WSO2 ESB for short spanning process with a shorter life cycle. WSO2 BPS has many integration points that you can control the Business process with features such as Human Tasks. On the other hand ESB has the capabilities but it may not be convenient and optimized as BPS for the long running well defined business processes.

Developing supporting services for a webservice

How to develop supporting services for a webservice to monitor the performance of the service and to diagnose the services by means of monitoring the users, memory, database etc.,
Please provide some pointers for developing such services.
Thanks,
Velmurugan R
You should take a look at JMX / MBeans. Mbeans can be used to read attributes from a running system in a standardized way. Or to invoke operations. With JConsole (distributed with Oracle JDK) you can connect to a running JVM and check out all existing MBeans.
http://docs.oracle.com/javase/tutorial/jmx/mbeans/standard.html

Jetty 8, servlet 3.0 and continuations

Is the continuation features of Jetty not needed with servlet 3.0 asychronous I/O?
Is there a difference or how should I as a developer see things? Can someone elaborate on this topic?
If you know that you are always deploying to a Servlet 3.0 compliant container, and you are comfortable with the asynchronous servlet API, then there's no need for Jetty continuations.
The two things continuations give you are:
They have an (arguably) simpler API.
They are (somewhat) portable to servlet 2.x containers.
To be clear on this last point, the continuation API is portable between containers, but it has the following behaviour:
On Jetty 6, 7 or 8 it will use Jetty's native asynchronous functionality
On servlet 3.0 containers it will use the asynchronous servlet API
On other (2.x) containers it will behave synchronously.
Some more info (but getting a little dated) is available here
The continuation filter was kind of a hot fix in order to overcome the issue of the servlet API (which basically is thread per request) and server push functionalities. The async Feature defined in servlet API 3.0 replaces this Filter and allows asynchrounous processing of a request based in configuration in your Web.xml.

Architecture: Technological questions

I want to create a web application with the following architecture:
There is some functionality, whiсh is encapsulated in the "Business logic" module (1). It uses MongoDB as a data store (5) and an external (command line) application (4).
The functionality of the application is brought to the end users via two channels:
The web application itself (2) and
public API (3), which allows third-party applications and mobile devices to access the business logic functionality.
The web application is written in Java and based on the Vaadin platform. Currently it runs in Jetty web server.
One important requirement: The web application should be scalable, i. e. it must be possible to increase the number of users/transactions it can service by adding new hardware.
I have following questions regarding the technical implementation of this architecture:
What technology can be used to implement the business logic part? What are the sensible options for creating a SCALABLE app server?
What web server can I choose for the web interface part (2) to make it scalable? What are the options?
Calculations done in the external system (4) are potentially CPU-intensive. Therefore I want to do them in an asynchronous way, i. e.
a) the user sends a request for this operation (via web interface or public API, 2 and 3 in the above image), that
b) request is put into a queue, then
c) the CPU-intensive calculations are done and
d) at some point in time the answer is sent to the user.
What technological options are there to implement this queueing (apart from JMS) ?
Thanks in advance
Dmitri
for scaling the interactions, have you look at Drools grid, Akka or JPPF ?
for making the web-application scalable, have you look at Terracotta or Glassfish clustering capabilities (Vaadin is a glassfish partner if i remember well) ?
Since nobody answered my question, I'll do it myself.
From other resources I learned that following technologies can be used for implementing this architecture:
1) Spring for Business logic (1)
2) GridGain or Apache Hadoop for scaling the interactions with the external system (4)
3) Hazelcast for making the web-application scalable (2, server-sided sessions).