1. Introduction

1.1: What is JOpera for Eclipse?

JOpera targets developers of Service-Oriented Business Applications and provides them with tools for rapid service composition. It includes a visual modeling environment, a light-weight execution engine, and also powerful debugging/refactoring tools which natively support the iterative nature of service composition. Service composition models in JOpera are defined at a higher level of abstraction than traditional BPM/BPEL languages and cover both architectural (structural) aspects as well as behavioural (flow) ones. JOpera is built as a collection of plugins for Eclipse, thus having great potential for further extensibility and integration with other SOA tools.

1.2: What's new in JOpera for Eclipse?

JOpera for Eclipse is a complete rewrite of JOpera for Windows as a set of Eclipse plugins. It not just a port of JOpera to run on Windows, Linux and Mac, but also a significant improvement, adding a lot of new functionality. Here are some examples:

  • Support for editing multiple source files
  • Support for editing different versions of the same process
  • Automatic background model checking: errors and warnings are listed in the problem view as you work
  • Automatic incremental recompilation and transparent redeployment of processes
  • The JOpera process execution kernel is embedded into the Eclipse workbench and is started automatically
  • A fully fledged application server is also embedded so that processes can be published as Web services with one mouse click (8.1: How to publish a process as a Web service)
  • You can add your own service invocation adapters and package them as Eclipse plugins. In addition to Web services (through SOAP/HTTP and WSIF), plugins are available to efficiently invoke Java snippets, Java classes, remote UNIX commands through SSH, XML transformations (XSLT, XPATH), SQL queries sent to any JDBC database, large Job submissions to clusters managed by Condor.
  • Examples can be added to the workspace using the New > Examples... menu command of Eclipse. (2.5: Examples)
  • You can more easily build your own program library and also reuse the standard library of programs that come with JOpera
  • JOpera for Eclipse is agile: it now includes visual refactoring and regression testing tools
  • JOpera for Eclipse integrates with the rest of the tools that run on the platform (e.g., CVS, SVN, WTP, TPTP)
JOpera for Eclipse is backwards compatible with JOpera for Windows (v1.71 and below). However, JOpera 1.71 is not upwards compatible with JOpera for Eclipse.

1.3: About JOpera for Eclipse

Web services offer a standards-based approach to address many interoperability issues arising when composing distributed software systems out of reusable services. Thanks to the SOAP protocol and WSDL interface description language, an increasingly large number of basic services are being published on the Internet. Clearly, it becomes important to find the right composition abstractions in order to build value added services out of the aggregation of basic ones. Complementing existing approaches based on the XML syntax (e.g., BPML, BPEL) we have designed a visual syntax for a service composition language. Thus, the data exchanges between the services (data flow), their order of invocation and the necessary failure handling behavior (control flow) can be all specified with a simple, graph-based, visual syntax. As opposed to an XML based approach, a visual language can greatly enhance the understandability of the composite system and provide the foundation for building rapid service composition tools, such as the JOpera for Eclipse system.
Among nesting, recursion, iteration, and reflection constructs, a very important feature of the JOpera Visual Composition Language consists of describing how to compose services at the level of abstraction represented by their interfaces. Thus, the description on how to compose the services is independent of the actual low-level protocols and mechanisms that are used to perform the actual service invocation. Abstracting the interface of a service from its access mechanism helps to generalize the scope of the JOpera composition language and system well beyond Web services. This way, the user can freely choose to compose the most appropriate kind of services in terms of performance, reliability, security and convenience. Likewise, the composition language is not affected when extending the underlying system to support other kinds of services. In other words, JOpera is future-proof and can readily support future revisions of today's Web services standards.
Thanks to this flexible approach, it is possible to unify composition and mediation aspects within the same language. In a typical service composition scenario, Web services published by independent organizations are to be composed in a bottom-up fashion. In general, a mismatch between these services it is to be expected. With JOpera, in order to solve the problems due to different data representations or incompatible interaction styles, a service fulfilling the role of mediator can be added in a straightforward manner. Furthermore, such mediator can be implemented with the most suitable technology, e.g., an XSLT transformation or a Java snippet.
For execution, the JOpera Visual Composition Language is compiled to Java code. To ensure the required level of scalability, reliability and flexibility, such code is dynamically loaded into a runtime container: the JOpera kernel. The flexible architecture of the JOpera kernel can be deployed in different configurations: stand-alone, embedded into other systems (e.g., application servers or development tools like Eclipse). The same architecture can also be replicated across a cluster of computers to handle the concurrent execution of a large number of composite services. The JOpera distributed kernel can also monitor its internal behaviour and configure itself automatically in order to provide an optimal balance between providing good performance and efficiently using the available resources.

1.4: About this manual

This manual contains basic information on how to work with JOpera, including several step by step tutorials with many screenshots and a reference to the most important commands and configuration options. Comments and contributions on how to improve the manual and JOpera are welcome (feedback@jopera.org).

Note: Given the rate at which the system's user interface changes, it is not always possible to keep the screenshots of the documentation consistent with the latest version of the actual software.

1.5: Revision

$Id: jop.xml 6807 2010-09-16 14:54:16Z cp $