SlideShare a Scribd company logo
1 of 10
Download to read offline
1
Integrating Behavior Protocols in
Enterprise Java Beans
Andrés Farías
Yann-Gaël Guéhéneuc
Speaker: Jacques Noyé
École des Mines
de Nantes, France
Object Technology
International, Inc., Canada
Behavior protocols as behavior specifications of components.
2
2/10
Plan
n Overview of components models with
explicit protocols.
n A notion of coherence:
– Protocols at the implementation and
specification levels.
– Coherence verification and compliance.
n Integrating explicit protocols in the EJB
component model.
There are mainly 3 points:
•You are going to explain what’s a component is with the example of the
chat server AND in the same example you will explain what protocols are.
•Then, as the “contribution” of the paper you will introduce the notion
of coherence between the protocol specified and the real protocol followed
by a component. You will also talk about how to verify this notion and how
to make two non compliant protocols compliant.
•Finally, you will offer a little discussion about how integrating protocols
in the EJB component model.
3
3/10
Example: A chat server
Login
ChatServer
post(Message)
login()
logout()
Client
search(Message)
Message
Board
Implementation
As an introductory example you will present the example of the
Chat server that you know already.
The main points to show is that:
•A component offers a set of services.
•A component use collaborators to solve implementation issues.
Some of them provide directly services to be offered by the
component (Login). Others are used in the component
implementation (MessageBoard).
Then you can pass directly to the next slide where you can talk about
the interaction between this component and its collaborator: services
are not always available OR you can say that their availability is non-
uniform.
4
4/10
n Sequential constraints
over service
requests/receptions.
What are protocols?
Implementation
Method declaration
Clients ID
Interface
user+: -login()
Clients!: -post(Message)
Clients*: +newMessage(Message)
user-: -logout()
start
So in fact, you say that services may be implemented in such a way
that they must be used following a given pattern. You can show that
protocols can serve to specify the interactions that must be followed
by the component and its collaborators
Then, you can say that protocols should idealy be at the interface level
in which other information such as the identities of the collaborators
should be specified too.
Next slide is going to talk about the natural questions that appear when
dealing with this kind of component models, so you can say this and show
the following slide!
5
5/10
Dealing with protocols…
n Programmers writing down a protocol
for every component is not realistic.
n Does a component implementation
follows a given protocol already?
n How to determine the protocol followed
by a given component?
n How to make a protocol compliant with
respect to a given protocol?
There are several “natural” questions that must arise in such a
component model:
•It is not realistic that programmers are going not only to write
the implementation but also to write a protocol for some components
here the protocol is in fact simply described by the implementation.
Ohhh that lazy people… but in fact you can say that it is a problem
for them… (but we will offer them a good solution: CwEP, but
this, you don’t have to say it right now.
•You can wonder whether a given component is compliant or not
with a given protocol.
•How to know what is the protocol followed by a given component?
•If my component does not follows a given protocol, what do I have to
modify in order to turn it compliant?
That’s are enough questions for a single workshop, so we stop here
and we start proposing some concrete solution to those questions.
Next slide we will start defining the notions necessary to answer the
questions.
6
6/10
A notion of coherence (1/2)
n The protocol a component follows is
called Implementation-level Protocol.
public class A {
B b;
public void n(){ … }
public void foo(){
…
b.m();
…
this.n();
…
b: +m() -n()
…
So in this slide you introduce the notion of a protocol at the level
of the implementation. You can say that this protocol is obtained
from the component source code after being analysed.
As shown in the picture every instruction is preceded by a point
representing a state in the protocol. One instruction is represented
by only one state, by one state may represent several instructions.
There is also a little algorithm for analise well defined collaborators
and then we are able to detect them and make them explicit in the
component protocol.
The pictures shows two method calls. Remarc that a call TO a component
is marked with a “+”, while auto calls are marked with “-” representing a
self service request.
Now that we have defined the protocol at the implementation level, we
will define the component at the specification level (in the next slide) and
then the notion of coherence.
7
7/10
A notion of coherence (2/2)
n The protocol a component must follow
is called Design-level Protocol.
n Coherence between protocols:
a bS-level
a bI-level
public class A {
B b;
public void n(){ … }
public void foo (){
…
b.m();
this.n();
}
}
The protocol at the specification level is the protocol that designers may
define for a component.
At the moment where we wrote the article, we didn’t really care about
how comparing two protocols. The worst case is simply using structural
comparison, but today we are using an equivalence relation (two protocols
will be coherent if one can substitute (under Nierstraszdefinition) the other and
viseversa.
So Coherence is just about saying if protocols are equivalents.
Now that we know what means two protocols being coherent we will
attack the problem of “how to”.
8
8/10
Verification, compliance, and
prototype
n Coherence verification:
– Dynamic.
– Static.
n Modifying component implementation:
– Dynamically.
– Statically.
n Prototype CwEP:
– Based on the Eclipse parser.
– Build on an implementation of protocol.
Coherence could be verified statically and dynamically.
See the article.
If you have the two protocols and they are not equivalent
we could modify the implementation protocol in order
to make it compliant. (see LMO 2002 =)
Finally, we ARE building a prototype capable of doing
all of that. Now, the prototype can just do the protocol
extraction.
Next slide is about integrating this model in the EJB.
Then, a good transition could be to say that all of this
could be done in a concrete component model, so
we have studied how to proceed and there are several
alternatives. NOW you change the slide…
9
9/10
Explicit protocols in the EJB
Code sourceInterfaceDescriptor files
Development
assembly
deployment
execution
In this graphic we can see that in fact the integration is less “possible”
when you try to do it in the lasts phases of the life cycle. More over, it
seems that doing it at the interface level with help of code to ensure
that the protocol is respected is the best solution.
See more details in the paper…
10
10/10
Conclusions and Future work
n Conclusions:
– Components with explicit protocols.
– Coherence between specification protocols
and implementation protocols.
– Discussion of the integration of explicit
protocols in the EJB component model.
n Future Work:
– Integration of protocol specifications in an
open EJB server, such as Jonas.
– Extension of the prototype for protocol
generation and coherence detection.
Ok, for the conclusions you think a lot.
Future work is also natural: try to finish the prototype
and do real experimentation in the EJB component model.

More Related Content

What's hot

TDD Walkthrough - Encryption
TDD Walkthrough - EncryptionTDD Walkthrough - Encryption
TDD Walkthrough - EncryptionPeterKha2
 
Design concerns for concrete syntax
Design concerns for concrete syntaxDesign concerns for concrete syntax
Design concerns for concrete syntaxMikhail Barash
 
9781111530532 ppt ch04
9781111530532 ppt ch049781111530532 ppt ch04
9781111530532 ppt ch04Terry Yoast
 
FregeDay: Roadmap for resolving differences between Haskell and Frege (Ingo W...
FregeDay: Roadmap for resolving differences between Haskell and Frege (Ingo W...FregeDay: Roadmap for resolving differences between Haskell and Frege (Ingo W...
FregeDay: Roadmap for resolving differences between Haskell and Frege (Ingo W...Dierk König
 
C programming interview questions
C programming interview questionsC programming interview questions
C programming interview questionsadarshynl
 
Notes on attention mechanism
Notes on attention mechanismNotes on attention mechanism
Notes on attention mechanismKhang Pham
 
9781111530532 ppt ch03
9781111530532 ppt ch039781111530532 ppt ch03
9781111530532 ppt ch03Terry Yoast
 
Mit4021 c# and .net
Mit4021   c# and .netMit4021   c# and .net
Mit4021 c# and .netsmumbahelp
 
9781111530532 ppt ch01
9781111530532 ppt ch019781111530532 ppt ch01
9781111530532 ppt ch01Terry Yoast
 
379008-rc217-functionalprogramming
379008-rc217-functionalprogramming379008-rc217-functionalprogramming
379008-rc217-functionalprogrammingLuis Atencio
 
9781111530532 ppt ch13
9781111530532 ppt ch139781111530532 ppt ch13
9781111530532 ppt ch13Terry Yoast
 
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
BERT: Pre-training of Deep Bidirectional Transformers for Language UnderstandingBERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
BERT: Pre-training of Deep Bidirectional Transformers for Language UnderstandingMinh Pham
 
9781111530532 ppt ch05
9781111530532 ppt ch059781111530532 ppt ch05
9781111530532 ppt ch05Terry Yoast
 

What's hot (20)

Vb.net
Vb.netVb.net
Vb.net
 
TDD Walkthrough - Encryption
TDD Walkthrough - EncryptionTDD Walkthrough - Encryption
TDD Walkthrough - Encryption
 
Design concerns for concrete syntax
Design concerns for concrete syntaxDesign concerns for concrete syntax
Design concerns for concrete syntax
 
BERT
BERTBERT
BERT
 
9781111530532 ppt ch04
9781111530532 ppt ch049781111530532 ppt ch04
9781111530532 ppt ch04
 
FregeDay: Roadmap for resolving differences between Haskell and Frege (Ingo W...
FregeDay: Roadmap for resolving differences between Haskell and Frege (Ingo W...FregeDay: Roadmap for resolving differences between Haskell and Frege (Ingo W...
FregeDay: Roadmap for resolving differences between Haskell and Frege (Ingo W...
 
C programming interview questions
C programming interview questionsC programming interview questions
C programming interview questions
 
Notes on attention mechanism
Notes on attention mechanismNotes on attention mechanism
Notes on attention mechanism
 
Polymorphism
PolymorphismPolymorphism
Polymorphism
 
9781111530532 ppt ch03
9781111530532 ppt ch039781111530532 ppt ch03
9781111530532 ppt ch03
 
Mit4021 c# and .net
Mit4021   c# and .netMit4021   c# and .net
Mit4021 c# and .net
 
9781111530532 ppt ch01
9781111530532 ppt ch019781111530532 ppt ch01
9781111530532 ppt ch01
 
Ak procedural vs oop
Ak procedural vs oopAk procedural vs oop
Ak procedural vs oop
 
379008-rc217-functionalprogramming
379008-rc217-functionalprogramming379008-rc217-functionalprogramming
379008-rc217-functionalprogramming
 
9781111530532 ppt ch13
9781111530532 ppt ch139781111530532 ppt ch13
9781111530532 ppt ch13
 
C# note
C# noteC# note
C# note
 
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
BERT: Pre-training of Deep Bidirectional Transformers for Language UnderstandingBERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
 
Procedural programming
Procedural programmingProcedural programming
Procedural programming
 
9781111530532 ppt ch05
9781111530532 ppt ch059781111530532 ppt ch05
9781111530532 ppt ch05
 
Introduction to Procedural Programming in C++
Introduction to Procedural Programming in C++Introduction to Procedural Programming in C++
Introduction to Procedural Programming in C++
 

Similar to Oopsla02 behavioralsemantics.ppt

OOPSLA02 BehavioralSemantics.ppt
OOPSLA02 BehavioralSemantics.pptOOPSLA02 BehavioralSemantics.ppt
OOPSLA02 BehavioralSemantics.pptPtidej Team
 
Objective of c in IOS , iOS Live Project Training Ahmedabad, MCA Live Project...
Objective of c in IOS , iOS Live Project Training Ahmedabad, MCA Live Project...Objective of c in IOS , iOS Live Project Training Ahmedabad, MCA Live Project...
Objective of c in IOS , iOS Live Project Training Ahmedabad, MCA Live Project...NicheTech Com. Solutions Pvt. Ltd.
 
The ultimate cheat sheet on .net core, .net framework, and .net standard
The ultimate cheat sheet on .net core, .net framework, and .net standardThe ultimate cheat sheet on .net core, .net framework, and .net standard
The ultimate cheat sheet on .net core, .net framework, and .net standardConcetto Labs
 
Introduction to Behavior Driven Development
Introduction to Behavior Driven Development Introduction to Behavior Driven Development
Introduction to Behavior Driven Development Robin O'Brien
 
Bt0066 database management system2
Bt0066 database management system2Bt0066 database management system2
Bt0066 database management system2Techglyphs
 
Complexity metrics for_business_process_models
Complexity metrics for_business_process_modelsComplexity metrics for_business_process_models
Complexity metrics for_business_process_modelsPutra Pribowo
 
Ncrafts.io - Refactor your software architecture
Ncrafts.io - Refactor your software architectureNcrafts.io - Refactor your software architecture
Ncrafts.io - Refactor your software architectureJulien Lavigne du Cadet
 
Migrating From Cpp To C Sharp
Migrating From Cpp To C SharpMigrating From Cpp To C Sharp
Migrating From Cpp To C SharpGanesh Samarthyam
 
Python monorepos what, why and how (shared)
Python monorepos  what, why and how (shared)Python monorepos  what, why and how (shared)
Python monorepos what, why and how (shared)benjyw
 
Demystifying dot NET reverse engineering - Part1
Demystifying  dot NET reverse engineering - Part1Demystifying  dot NET reverse engineering - Part1
Demystifying dot NET reverse engineering - Part1Soufiane Tahiri
 
Advanced web application architecture - Talk
Advanced web application architecture - TalkAdvanced web application architecture - Talk
Advanced web application architecture - TalkMatthias Noback
 
Transaction handling in com, ejb and .net
Transaction handling in com, ejb and .netTransaction handling in com, ejb and .net
Transaction handling in com, ejb and .netijseajournal
 
Prograamção Paralela Baseada em Componentes (Introduzido o Modelo #)
Prograamção Paralela Baseada em Componentes (Introduzido o Modelo #)Prograamção Paralela Baseada em Componentes (Introduzido o Modelo #)
Prograamção Paralela Baseada em Componentes (Introduzido o Modelo #)Heron Carvalho
 
Architecting for Change: An Agile Approach
Architecting for Change: An Agile ApproachArchitecting for Change: An Agile Approach
Architecting for Change: An Agile ApproachBen Stopford
 
Phenoflow: A Microservice Architecture for Portable Workflow-based Phenotype ...
Phenoflow: A Microservice Architecture for Portable Workflow-based Phenotype ...Phenoflow: A Microservice Architecture for Portable Workflow-based Phenotype ...
Phenoflow: A Microservice Architecture for Portable Workflow-based Phenotype ...Martin Chapman
 
Book management system
Book management systemBook management system
Book management systemSHARDA SHARAN
 
Rsqrd AI: ML Tooling at an AI-first Startup
Rsqrd AI: ML Tooling at an AI-first StartupRsqrd AI: ML Tooling at an AI-first Startup
Rsqrd AI: ML Tooling at an AI-first StartupSanjana Chowdhury
 

Similar to Oopsla02 behavioralsemantics.ppt (20)

OOPSLA02 BehavioralSemantics.ppt
OOPSLA02 BehavioralSemantics.pptOOPSLA02 BehavioralSemantics.ppt
OOPSLA02 BehavioralSemantics.ppt
 
Objective of c in IOS , iOS Live Project Training Ahmedabad, MCA Live Project...
Objective of c in IOS , iOS Live Project Training Ahmedabad, MCA Live Project...Objective of c in IOS , iOS Live Project Training Ahmedabad, MCA Live Project...
Objective of c in IOS , iOS Live Project Training Ahmedabad, MCA Live Project...
 
Sorted
SortedSorted
Sorted
 
Bc0055, tcpip
Bc0055, tcpipBc0055, tcpip
Bc0055, tcpip
 
The ultimate cheat sheet on .net core, .net framework, and .net standard
The ultimate cheat sheet on .net core, .net framework, and .net standardThe ultimate cheat sheet on .net core, .net framework, and .net standard
The ultimate cheat sheet on .net core, .net framework, and .net standard
 
Introduction to Behavior Driven Development
Introduction to Behavior Driven Development Introduction to Behavior Driven Development
Introduction to Behavior Driven Development
 
Bt0066 database management system2
Bt0066 database management system2Bt0066 database management system2
Bt0066 database management system2
 
Complexity metrics for_business_process_models
Complexity metrics for_business_process_modelsComplexity metrics for_business_process_models
Complexity metrics for_business_process_models
 
Ncrafts.io - Refactor your software architecture
Ncrafts.io - Refactor your software architectureNcrafts.io - Refactor your software architecture
Ncrafts.io - Refactor your software architecture
 
Migrating From Cpp To C Sharp
Migrating From Cpp To C SharpMigrating From Cpp To C Sharp
Migrating From Cpp To C Sharp
 
Python monorepos what, why and how (shared)
Python monorepos  what, why and how (shared)Python monorepos  what, why and how (shared)
Python monorepos what, why and how (shared)
 
Demystifying dot NET reverse engineering - Part1
Demystifying  dot NET reverse engineering - Part1Demystifying  dot NET reverse engineering - Part1
Demystifying dot NET reverse engineering - Part1
 
Advanced web application architecture - Talk
Advanced web application architecture - TalkAdvanced web application architecture - Talk
Advanced web application architecture - Talk
 
Transaction handling in com, ejb and .net
Transaction handling in com, ejb and .netTransaction handling in com, ejb and .net
Transaction handling in com, ejb and .net
 
Prograamção Paralela Baseada em Componentes (Introduzido o Modelo #)
Prograamção Paralela Baseada em Componentes (Introduzido o Modelo #)Prograamção Paralela Baseada em Componentes (Introduzido o Modelo #)
Prograamção Paralela Baseada em Componentes (Introduzido o Modelo #)
 
Architecting for Change: An Agile Approach
Architecting for Change: An Agile ApproachArchitecting for Change: An Agile Approach
Architecting for Change: An Agile Approach
 
Phenoflow: A Microservice Architecture for Portable Workflow-based Phenotype ...
Phenoflow: A Microservice Architecture for Portable Workflow-based Phenotype ...Phenoflow: A Microservice Architecture for Portable Workflow-based Phenotype ...
Phenoflow: A Microservice Architecture for Portable Workflow-based Phenotype ...
 
Asp net-mvc-3 tier
Asp net-mvc-3 tierAsp net-mvc-3 tier
Asp net-mvc-3 tier
 
Book management system
Book management systemBook management system
Book management system
 
Rsqrd AI: ML Tooling at an AI-first Startup
Rsqrd AI: ML Tooling at an AI-first StartupRsqrd AI: ML Tooling at an AI-first Startup
Rsqrd AI: ML Tooling at an AI-first Startup
 

More from Yann-Gaël Guéhéneuc

Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Yann-Gaël Guéhéneuc
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Yann-Gaël Guéhéneuc
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Yann-Gaël Guéhéneuc
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Yann-Gaël Guéhéneuc
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Yann-Gaël Guéhéneuc
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...Yann-Gaël Guéhéneuc
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesYann-Gaël Guéhéneuc
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Yann-Gaël Guéhéneuc
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1Yann-Gaël Guéhéneuc
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6Yann-Gaël Guéhéneuc
 

More from Yann-Gaël Guéhéneuc (20)

Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its Consequences
 
Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
 
Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6
 
ICSOC'21
ICSOC'21ICSOC'21
ICSOC'21
 
Vissoft21.ppt
Vissoft21.pptVissoft21.ppt
Vissoft21.ppt
 
Service computation20.ppt
Service computation20.pptService computation20.ppt
Service computation20.ppt
 
Serp4 iot20.ppt
Serp4 iot20.pptSerp4 iot20.ppt
Serp4 iot20.ppt
 
Msr20.ppt
Msr20.pptMsr20.ppt
Msr20.ppt
 
Iwesep19.ppt
Iwesep19.pptIwesep19.ppt
Iwesep19.ppt
 
Icsoc20.ppt
Icsoc20.pptIcsoc20.ppt
Icsoc20.ppt
 
Icsoc18.ppt
Icsoc18.pptIcsoc18.ppt
Icsoc18.ppt
 

Recently uploaded

Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 

Recently uploaded (20)

Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 

Oopsla02 behavioralsemantics.ppt

  • 1. 1 Integrating Behavior Protocols in Enterprise Java Beans Andrés Farías Yann-Gaël Guéhéneuc Speaker: Jacques Noyé École des Mines de Nantes, France Object Technology International, Inc., Canada Behavior protocols as behavior specifications of components.
  • 2. 2 2/10 Plan n Overview of components models with explicit protocols. n A notion of coherence: – Protocols at the implementation and specification levels. – Coherence verification and compliance. n Integrating explicit protocols in the EJB component model. There are mainly 3 points: •You are going to explain what’s a component is with the example of the chat server AND in the same example you will explain what protocols are. •Then, as the “contribution” of the paper you will introduce the notion of coherence between the protocol specified and the real protocol followed by a component. You will also talk about how to verify this notion and how to make two non compliant protocols compliant. •Finally, you will offer a little discussion about how integrating protocols in the EJB component model.
  • 3. 3 3/10 Example: A chat server Login ChatServer post(Message) login() logout() Client search(Message) Message Board Implementation As an introductory example you will present the example of the Chat server that you know already. The main points to show is that: •A component offers a set of services. •A component use collaborators to solve implementation issues. Some of them provide directly services to be offered by the component (Login). Others are used in the component implementation (MessageBoard). Then you can pass directly to the next slide where you can talk about the interaction between this component and its collaborator: services are not always available OR you can say that their availability is non- uniform.
  • 4. 4 4/10 n Sequential constraints over service requests/receptions. What are protocols? Implementation Method declaration Clients ID Interface user+: -login() Clients!: -post(Message) Clients*: +newMessage(Message) user-: -logout() start So in fact, you say that services may be implemented in such a way that they must be used following a given pattern. You can show that protocols can serve to specify the interactions that must be followed by the component and its collaborators Then, you can say that protocols should idealy be at the interface level in which other information such as the identities of the collaborators should be specified too. Next slide is going to talk about the natural questions that appear when dealing with this kind of component models, so you can say this and show the following slide!
  • 5. 5 5/10 Dealing with protocols… n Programmers writing down a protocol for every component is not realistic. n Does a component implementation follows a given protocol already? n How to determine the protocol followed by a given component? n How to make a protocol compliant with respect to a given protocol? There are several “natural” questions that must arise in such a component model: •It is not realistic that programmers are going not only to write the implementation but also to write a protocol for some components here the protocol is in fact simply described by the implementation. Ohhh that lazy people… but in fact you can say that it is a problem for them… (but we will offer them a good solution: CwEP, but this, you don’t have to say it right now. •You can wonder whether a given component is compliant or not with a given protocol. •How to know what is the protocol followed by a given component? •If my component does not follows a given protocol, what do I have to modify in order to turn it compliant? That’s are enough questions for a single workshop, so we stop here and we start proposing some concrete solution to those questions. Next slide we will start defining the notions necessary to answer the questions.
  • 6. 6 6/10 A notion of coherence (1/2) n The protocol a component follows is called Implementation-level Protocol. public class A { B b; public void n(){ … } public void foo(){ … b.m(); … this.n(); … b: +m() -n() … So in this slide you introduce the notion of a protocol at the level of the implementation. You can say that this protocol is obtained from the component source code after being analysed. As shown in the picture every instruction is preceded by a point representing a state in the protocol. One instruction is represented by only one state, by one state may represent several instructions. There is also a little algorithm for analise well defined collaborators and then we are able to detect them and make them explicit in the component protocol. The pictures shows two method calls. Remarc that a call TO a component is marked with a “+”, while auto calls are marked with “-” representing a self service request. Now that we have defined the protocol at the implementation level, we will define the component at the specification level (in the next slide) and then the notion of coherence.
  • 7. 7 7/10 A notion of coherence (2/2) n The protocol a component must follow is called Design-level Protocol. n Coherence between protocols: a bS-level a bI-level public class A { B b; public void n(){ … } public void foo (){ … b.m(); this.n(); } } The protocol at the specification level is the protocol that designers may define for a component. At the moment where we wrote the article, we didn’t really care about how comparing two protocols. The worst case is simply using structural comparison, but today we are using an equivalence relation (two protocols will be coherent if one can substitute (under Nierstraszdefinition) the other and viseversa. So Coherence is just about saying if protocols are equivalents. Now that we know what means two protocols being coherent we will attack the problem of “how to”.
  • 8. 8 8/10 Verification, compliance, and prototype n Coherence verification: – Dynamic. – Static. n Modifying component implementation: – Dynamically. – Statically. n Prototype CwEP: – Based on the Eclipse parser. – Build on an implementation of protocol. Coherence could be verified statically and dynamically. See the article. If you have the two protocols and they are not equivalent we could modify the implementation protocol in order to make it compliant. (see LMO 2002 =) Finally, we ARE building a prototype capable of doing all of that. Now, the prototype can just do the protocol extraction. Next slide is about integrating this model in the EJB. Then, a good transition could be to say that all of this could be done in a concrete component model, so we have studied how to proceed and there are several alternatives. NOW you change the slide…
  • 9. 9 9/10 Explicit protocols in the EJB Code sourceInterfaceDescriptor files Development assembly deployment execution In this graphic we can see that in fact the integration is less “possible” when you try to do it in the lasts phases of the life cycle. More over, it seems that doing it at the interface level with help of code to ensure that the protocol is respected is the best solution. See more details in the paper…
  • 10. 10 10/10 Conclusions and Future work n Conclusions: – Components with explicit protocols. – Coherence between specification protocols and implementation protocols. – Discussion of the integration of explicit protocols in the EJB component model. n Future Work: – Integration of protocol specifications in an open EJB server, such as Jonas. – Extension of the prototype for protocol generation and coherence detection. Ok, for the conclusions you think a lot. Future work is also natural: try to finish the prototype and do real experimentation in the EJB component model.