Dr. Claudio Guidi
Language and concepts
Jolie is a new programming language
based upon a new programming paradigm:
the service oriented one
Jolie provides a concrete technology for
thinking and organizing distribute
applications following new concepts and
patterns
Practice and theory
Jolie provides an easy means for programming
services
Jolie provides simple mechanisms for composing
services into SOAs
Jolie allows for the modelling of information
processes by means of workflows
Jolie is based upon a formal theory (SOCK) which
allows for the development of mathematical
machineries and tools for property verification
Academy and Industry
Jolie is growing within the Academy. It
provides a concrete basis for reasoning about
open issues in distributed application within
the service oriented area
Jolie is growing within the industry. It is
exploited by italianaSoftware s.r.l. as a
technology for developing distributed
applications
Research diagram
reasoning
Real SOAs
formalization
SOCK
Lacks and redudancy
developing
SOA Design
implementation
emerging patterns
JOLIE
emerging
concepts
key concepts: Service
Behaviour: it
describes how a
service session
behaves
Engine: it manages
sessions
Interface: it
describes the
service
Ports: they
represent the
access points
where the service
is deployed
Network
key concepts: Behaviour
The behaviour of a service is the description of the service activities
composed in a workflow.
• Communication activities
• OneWay
• Request-Response
• Notification
• Solicit-Response
• Functional activities
• data manipulation
• Fault activities
• faults
• termination
• compensation
key concepts: Session
A service session is an executing instance of a service behaviour
equipped with its own local state.
Local state
In general a session is
identified by its own local
state or a part of it. The part
of the local state which
identifies a session can be
programmed and it is called
correlation set.
key concepts: Engine
An engine is a machinery able to manage service sessions by providing
session creation, state support, message routing and session execution
capabilities.
State support
State creation:
• when a message is received on a
session initiator
• when a user manually starts it:
firing session
• local state
• global state
• storage state
• Message routing
• Session execution
• concurrent
• sequential
Writing a service with Jolie
execution { concurrent }
Service engine execution modality
cset { id : request.id }
Correlation set definition
interface myInterface {
OneWay: login
RequestResponse: get_data throws data_fault
}
inputPort myPort {
Protocol: http
Location: “socket://localhost:2000”
Interfaces: myInterface
}
main
{
login( request ) ;
get_data( request )( response ) {
response.data = “your data” + request.id
}
}
Interface definition
inputPort definition
Main code
Composition: Embedding
Service container
Local connection
Composition: Redirection
M/?
M
/A
A
/B
B
/C
C
Composition: Aggregation
op1
op2
op3
op1
op1@A
op2
op1@M
M
op3
A
B
C
SoS Pattern
M
B
B
B
B
All the embedded services have the same behaviour but they
differ for the resource name given at the level of M. Each client
can have an enitire custom service as a resource to access.
Business Scenario
ERP
CRM
Administration
BPM
Access Control
Web Portal
The cost of the organization
First step: introducing services
Second step: introducing orchestrators
Third step: completing connections
ERP
CRM
Administration
BPM
Access Control
Web Portal
Strategic advantages
Jolie is easy to use
Jolie is easy to learn
Jolie implements both services and orchestrators
Jolie can be easily integrated within Web 2.0
applications
Jolie and Web 2.0 applications
A Jolie service can be deployed as a Web Server
(Leonardo)
It is possible to integrate Google Web Toolkit
client applications with Leonardo
It is possible to directly access a SOA with a
browser interface without using other
frameworks.
Jolie contributors
• Claudio Guidi and Fabrizio Montesi
• Mila Dallapreda, Maurizio Gabbrielli, Roberto
Gorrieri , Ivan Lanese, Jacopo Mauro , Roberto
Lucchi, Davide Sangiorgi, Gianluigi Zavattaro,
• Francesco Bullini and Balint Maschio
Current research activities
• Workflow graphical Editor
(Claudio Guidi and Alessandro Sperduti @UniPD)
• Choreography and behavioural types
(Fabrizio Montesi and Marco Carbone @ITU)
• Session management and correlation sets
(Jacopo Mauro and Maurizio Gabbrielli @UniBo)
• SmartAggregation
(Claudio Guidi and Mila Dallapreda @Unibo&iS)
• SOA Monitoring
(Paola Mello @Deis-Unibo)
Current business activities
Jolie is currently exploited by italianaSoftware s.r.l.
In August 2010, italianaSoftware joined the Azimut
Group:
• more than 10 companies
• 26.000.000 euros of work in 2010
• System integration
• SAP integration
• Web 2.0 applications
Thanks!
Scarica

Verso un`integrazione condivisa dei sistemi informativi: le service