• No results found

The Service Revolution software engineering without programming languages

N/A
N/A
Protected

Academic year: 2021

Share "The Service Revolution software engineering without programming languages"

Copied!
29
0
0

Loading.... (view fulltext now)

Full text

(1)

The Service Revolution – software engineering without programming languages

Gustavo Alonso

Institute for Pervasive Computing Department of Computer Science

Swiss Federal Institute of Technology (ETH Zurich)

ECOWS’06 - Zurich

(2)

The two sides of SOA

(3)

The beautiful garden = Semantic Web

Fully transparent integration at the semantic level

ƒ Semantic matchmaking

ƒ Automatic composition through pre- and post- conditions

ƒ Theorem proven driven QoS

ƒ Automatic, world wide service search This will not work any time soon:

ƒ It is not a real problem

ƒ Ignores that the service matching is not interface based

ƒ “AI mistakes” revisited = it is not the logic but the underlying data

ƒ Ignores the power of vertical standards in this area

(4)

The Holy Grail: Automatic Software Generation

High Level Declarative Programming

Enactment, enforcement

adaptation, failure handling,

notification Extension,

compilation, resolution,

monitoring Programmer domain

(5)

The ugly city = System Integration

SOA is not an abstract idea, it is a response to

ƒ Very well defined needs in enterprise computing

ƒ Changes in technology (cluster, networking, distribution)

ƒ The Internet

ƒ Business-to-Business integration

ƒ Enterprise Computing coming of age

ƒ Large scale distributed information systems

To understand SOA, the key is to understand the underlying problems, not just the technology involved in solving them

(6)

Automatic Plumbing Generation

The promise of SOA is to facilitate integration by

ƒ Letting the system automatically decide on integration decisions - protocols to use

- intermediate processing needed - routing and distribution

- data transformations

ƒ Enforcing standards for defining and operating with services

ƒ Enforcing the use of service interfaces

Related to this, there are many additional opportunities:

ƒ Languages for orchestration and composition

ƒ Reasoning about compositions

ƒ Integration by non-experts (IBM’s situational integration)

(7)

Facilitate integration

In the medium term, service

orientation will solve the problem of connectivity at the syntax level

ƒModel Driven Architectures

ƒBusiness Processes

ƒOrchestration

extensions

protocols

data map

mode

extensions

protocols

data map

mode Programmer domain

System Domain

(8)

Example of easier integration

WS Invocation Framework

ƒ Use WSDL to describe a service

ƒ Use WSIF to let the system decide what to do when the service is invoked:

- If the call is to a local EJB then do nothing - If the call is to a remote EJB then use RMI - If the call is to a queue then use JMS

- If the call is to a remote Web service then use SOAP and XML

ƒ There is a single interface description, the system decides on the binding

ƒ This type of functionality is at the core of the notion of Service Oriented Architecture

(9)

SOA and web services are there because of the need to solve the system integration problem not because of any immediate need for the semantic services web

(10)

Service Revolution: integration not programming

The key issue in enterprise computing today is integration:

ƒ Enterprise Application Integration

ƒ Transactional and Message Oriented Middleware

ƒ Enterprise Software Bus

ƒ Data integration

ƒ Enterprise-wide Architectures

Programming is to integration what laying bricks is to architectural design

(11)

What SOA is about

SOA is about:

ƒ Non-functional properties: performance, reliability, security, …

ƒ Large scale composition

ƒ Document and message based interaction

ƒ Distributed systems architecture

ƒ Run time properties and contracts

ƒ Protocols, data formats

Conventional software engineering cannot address:

SOA and web services bring to the fore the dependencies of existing programming

languages on (single CPU) hardware concepts

(12)

Two contemporary examples

XML

ƒ Programming language variables

ƒ Semi-structured Documents

ƒ Procedural interfaces

ƒ Document based interfaces

ƒ Behavioral interfaces

ƒ Variable assignment

ƒ Declarative queries

Impedance mismatch

Asynchronous Data Streams

ƒ Procedural control flow

ƒ Event based control flow

ƒ Language based distribution

ƒ Platform based distribution

ƒ Behavioral interfaces

ƒ Sequential programs

ƒ Highly parallel and concurrent

Model mismatch

(13)

Objects – Components - Services

Object orientation

Compiler based

Object/method interfaces Behavior explicit in object Program is closed world Programming language Compiler based

Object/method interfaces Behavior explicit in object Program is closed world Programming language

Component systems

Middleware based Component interfaces Behavior in composition Program is open world Middleware + plumbing Middleware based

Component interfaces Behavior in composition Program is open world Middleware + plumbing

Service platforms

Container + middleware Service interfaces

Behavior in code, container and composition

Autonomic, large scale Container + middleware Service interfaces

Behavior in code, container and composition

Autonomic, large scale

Programming languages Component Models - Middleware

Service oriented architectures

(14)

Services not components

The two sides:

ƒ Integration is based on services

ƒ Programming is based on objects and components

There are similarities in theory, in practice they are very different

ƒ Services are not object oriented

ƒ Services have document based interfaces

ƒ Services have a behavioral contract with their consumers

ƒ Services are reusable by definition

ƒ Services are (should be) loosely coupled

ƒ Services are autonomous

ƒ Services have (very) explicit boundaries

(15)

The post-modern programmer: there is no perfect OO language, there is no

universal solution to all software development problems

Steve Cook: Object Technology – A Grand Narrative?

ECOOP’06

(16)

SOA is HAD

HAD is an old concept in distributed information systems

ƒ H = Heterogeneous

ƒ A = Autonomous

ƒ D = Distributed HAD is

ƒ The essence of and the reason for SOA

ƒ The problem SOA tries to solve

HAD is where the OO paradigm has failed

ƒ CORBA

ƒ Object Oriented Databases

ƒ Reuse

(17)

No HAD in OO: OO Detours

(based on Steve Cook, ECOOP 06)

ƒ Reuse Problem: Objects ignore the environment where they live

ƒ Real objects in different systems are autonomous

ƒ Real objects in different systems are heterogeneous

ƒ Distribution Problem: Abstracting away the problem’s essence

ƒ Tight coupling (language, interaction, development, operation)

ƒ Database Problem: impedance mismatch

ƒ Still present with XML, messages, and events

ƒ Modeling Problem: from OO models to software systems

ƒ Objects are too low level to model real HAD systems

(18)

The new Software Engineering for SOA

(19)

WS standards

rom: roadmap.cbdiforum.com/reports/protocols/

(20)

Separation of concerns

qcc.cuny.edu/xmlcenter/protocolstack.htm

(21)

The value of new technology

There is no problem in system design that cannot be solved by

adding a level of

indirection. There is no performance problem that cannot be solved by

removing a level of

indirection.

(22)

Services = run time Software Engineering

A Service contract involves the interface, the Service Level

agreement and QoS

Contracts are key to be able to develop, debug, optimize and

maintain systems developed as a combination of services

Service contracts are not the static, compile time pre-

and post-conditions of conventional programming

languages

They are an additional software layer in charge of the dynamic

aspects of using services Service contracts are not the

static, compile time pre- and post-conditions of conventional programming

languages

They are an additional software layer in charge of the dynamic

aspects of using services

(23)

Crash course on dynamic AOP

An aspect has

ƒ A join-point: where in the code the advice has to be executed

ƒ An advice: the code that needs to be executed when the join-point is reached

Adaptation is achieved by

weaving an aspect at run time that will execute the advice when a particular event in the execution occurs

Example, replace all methods Data_Transfer, with a new method Data_Transfer2.

ƒ The join-point identifies the method (Data_Transfer)

ƒ The advice contains the new method (Data_Transfer2).

ƒ When Data_Transfer method is called, Data_Transfer2 is executed instead

(24)

• Make app state persistent

• Make all calls transactional

Trap all calls to me

and encrypt using this module Trap all calls

to me

and encrypt using this module

Encrypted calls Encrypted calls

I only accept encrypted calls Sorry, I do not

encrypt calls

Run Time Service Container

Trap any state change Trap any state

change Add a TP-

monitor Add a TP- monitor

Popovici et al., ECOOP 2003

(25)

PROSE: a platform for run time adaptation

PROSE allows designers to modify any aspect of a running Java:

ƒ At run time

ƒ Without stopping or reloading

ƒ Using Java to express the changes

ƒ Using a rich collection of interception points

PROSE is a real system widely used:

ƒ Prose 2002: adaptation through run time debugger

ƒ Prose 2004: adaptation through labeling and JIT

ƒ Prose 2006: around advice through JIT manipulation

ƒDownload and more info from http://prose.ethz.ch

(26)

More run time: Service composition

(27)

JOpera Distributed Kernel

Navigator Navigator

Dispatcher Dispatcher Dispatcher

Process Template

Plugin Process Template

Plugin

Process Template

Plugin Process Template

Plugin

UNIXUNIXUNIX SOAPSOAPSOAP JAVAJAVAJAVA ............

State Information

Storage Event Queues

Task Execution Scheduler Kernel

Download and more information: www.jopera.ethz.ch

(28)

Where we all miss the point

JOpera (like most similar systems, including BPEL):

ƒ Can compose services but cannot really compose processes - Modularity of composition is not well understood

ƒ The problem is not the control flow but the data flow - Impedance mismatch still there

ƒ Too dependent of graphic representation

- Certain complex operations will never be graphical

ƒ A process is software

- Version control, documentation, comments

ƒ Cannot really support large scale design - The workflow is only one aspect

- Garbage collection, exceptions, concurrency, …

(29)

Conclusions

SOA and web services could be a passing fashion The problems they try to tackle will remain

ƒ Cost of application integration

ƒ Lack of models, languages, and tools

ƒ Non-functional properties of large scale systems

ƒ Composition

ƒ Services

The first step to address these problems is to recognize them as fundamental problems and not just things that cannot be done

within the current paradigms

References

Related documents

Concur Technologies Software Design Engineer Intern UX Design Intern Marketing Intern QA Engineer Intern MBA Intern Finance Intern Accounting Intern Mobile Intern Data Science

There still remains gap for development of graph theoretic modelling approaches that allow a complete optimal control solution to be determined from one-pass shortest path algorithms

The third case study deals with a sustained release pellet formulation which was processed in production scale Bohle Fluid Bed Systems (BFS 120 and BFS 240). The second

Frequently updating online pro- grams (Winkler-Prins et al., 2007), collecting student feedback (Cornelius & Glasgow, 2007; Li & Irby, 2008), and obtaining input by col-

Changing trends in the landscape of patients hospitalized with Changing trends in the landscape of patients hospitalized with acute myocardial infarction (2001 to 2011): The

When controlling for credit risk and other variables using multiple regression analysis, consumers who believed the dealer when they said they were giving the consumer the “best”

This study confirms Tyebjee & Bruno´s (1984) and Fried & Hisrich´s (1994) results as it is found that funds screen investment prospects based on the investment policy of the

3) What is the relationship between participants’ working memory capacity and their performance in relation to comprehension and recall of both hypertexts and linear texts? 4)