SlideShare a Scribd company logo
Integrating Behavior Protocols in
         Enterprise Java Beans


                             Andrés Farías
                          Yann-Gaël Guéhéneuc

                          Speaker: Jacques Noyé
      École des Mines                                          Object Technology
      de Nantes, France                                        International, Inc., Canada




Behavior protocols as behavior specifications of components.




                                                                                             1
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 Integratingexplicit protocols in the EJB
              component model.
  2/10




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.




                                                                               2
Example: A chat server

            ChatServer


                            Implementation
                                             search(Message)
             Message
             Board
                                             post(Message)

                                                                          Client



             Login
                                             login()
                                             logout()



  3/10




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.




                                                                                   3
What are protocols?                                 Interface


                                                           Method declaration
          n Sequential  constraints
             over service
                                                               Clients ID
             requests/receptions.
                                                               Implementation


                        start
                                Clients!: -post(Message)

           user+: -login()
          user-: -logout()

  4/10               Clients*: +newMessage(Message)




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!




                                                                                4
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?
      5/10




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.




                                                                        5
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();
                …                            b: +m()                       -n()
                                                               …
                this.n();
  6/10          …




So in this slide you introduce the notion of a protocol at the le vel
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.




                                                                                  6
A notion of coherence                                        (2/2)
          n The  protocol a component must follow
            is called Design-level Protocol.
          n Coherence between protocols:

                        S-level              a                 b


                        I-level              a                 b

                                      public class A {
                                        B b;
                                        public void n(){ … }
                                        public void foo (){
                                          …
                                          b.m();
                                          this.n();
  7/10                                  }
                                      }




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 Nierstrasz definition) 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”.




                                                                                     7
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.
  8/10




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…




                                                            8
Explicit protocols in the EJB

              execution


             deployment


              assembly


            Development


                               Descriptor files     Interface     Code source
  9/10




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…




                                                                                9
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
 10/10
                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.




                                                               10

More Related Content

What's hot

Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Coen De Roover
 
Framework engineering JCO 2011
Framework engineering JCO 2011Framework engineering JCO 2011
Framework engineering JCO 2011
YoungSu Son
 
Detecting Occurrences of Refactoring with Heuristic Search
Detecting Occurrences of Refactoring with Heuristic SearchDetecting Occurrences of Refactoring with Heuristic Search
Detecting Occurrences of Refactoring with Heuristic Search
Shinpei Hayashi
 
07 iec t1_s1_oo_ps_session_10
07 iec t1_s1_oo_ps_session_1007 iec t1_s1_oo_ps_session_10
07 iec t1_s1_oo_ps_session_10
Niit Care
 
C programming interview questions
C programming interview questionsC programming interview questions
C programming interview questions
adarshynl
 
Evolution of Patterns
Evolution of PatternsEvolution of Patterns
Evolution of Patterns
Chris Eargle
 
Visualizing Stakeholder Concerns with Anchored Map
Visualizing Stakeholder Concerns with Anchored MapVisualizing Stakeholder Concerns with Anchored Map
Visualizing Stakeholder Concerns with Anchored Map
Takanori Ugai
 
SOFTWARE TOOL FOR TRANSLATING PSEUDOCODE TO A PROGRAMMING LANGUAGE
SOFTWARE TOOL FOR TRANSLATING PSEUDOCODE TO A PROGRAMMING LANGUAGESOFTWARE TOOL FOR TRANSLATING PSEUDOCODE TO A PROGRAMMING LANGUAGE
SOFTWARE TOOL FOR TRANSLATING PSEUDOCODE TO A PROGRAMMING LANGUAGE
IJCI JOURNAL
 
NASAfinalPaper
NASAfinalPaperNASAfinalPaper
NASAfinalPaper
Danish Vaid
 
Sentence-to-Code Traceability Recovery with Domain Ontologies
Sentence-to-Code Traceability Recovery with Domain OntologiesSentence-to-Code Traceability Recovery with Domain Ontologies
Sentence-to-Code Traceability Recovery with Domain Ontologies
Shinpei Hayashi
 
12 iec t1_s1_oo_ps_session_17
12 iec t1_s1_oo_ps_session_1712 iec t1_s1_oo_ps_session_17
12 iec t1_s1_oo_ps_session_17
Niit Care
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
soms_1
 
Toward Understanding How Developers Recognize Features in Source Code from De...
Toward Understanding How Developers Recognize Features in Source Code from De...Toward Understanding How Developers Recognize Features in Source Code from De...
Toward Understanding How Developers Recognize Features in Source Code from De...
Shinpei Hayashi
 
Annotating with Annotations - PHPBenelux June/2012
Annotating with Annotations - PHPBenelux June/2012Annotating with Annotations - PHPBenelux June/2012
Annotating with Annotations - PHPBenelux June/2012
Rafael Dohms
 
chap4 : Converting and Casting (scjp/ocjp)
chap4 : Converting and Casting (scjp/ocjp)chap4 : Converting and Casting (scjp/ocjp)
chap4 : Converting and Casting (scjp/ocjp)
It Academy
 
Model-Driven Development in the context of Software Product Lines
Model-Driven Development in the context of Software Product LinesModel-Driven Development in the context of Software Product Lines
Model-Driven Development in the context of Software Product Lines
Markus Voelter
 
Lecture21 categoriesof userdefinedfunctions.ppt
Lecture21 categoriesof userdefinedfunctions.pptLecture21 categoriesof userdefinedfunctions.ppt
Lecture21 categoriesof userdefinedfunctions.ppt
eShikshak
 
Extending and scripting PDT
Extending and scripting PDTExtending and scripting PDT
Extending and scripting PDT
William Candillon
 
NoTube: Metadata Interoperability
NoTube: Metadata InteroperabilityNoTube: Metadata Interoperability
NoTube: Metadata Interoperability
MODUL Technology GmbH
 

What's hot (19)

Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
 
Framework engineering JCO 2011
Framework engineering JCO 2011Framework engineering JCO 2011
Framework engineering JCO 2011
 
Detecting Occurrences of Refactoring with Heuristic Search
Detecting Occurrences of Refactoring with Heuristic SearchDetecting Occurrences of Refactoring with Heuristic Search
Detecting Occurrences of Refactoring with Heuristic Search
 
07 iec t1_s1_oo_ps_session_10
07 iec t1_s1_oo_ps_session_1007 iec t1_s1_oo_ps_session_10
07 iec t1_s1_oo_ps_session_10
 
C programming interview questions
C programming interview questionsC programming interview questions
C programming interview questions
 
Evolution of Patterns
Evolution of PatternsEvolution of Patterns
Evolution of Patterns
 
Visualizing Stakeholder Concerns with Anchored Map
Visualizing Stakeholder Concerns with Anchored MapVisualizing Stakeholder Concerns with Anchored Map
Visualizing Stakeholder Concerns with Anchored Map
 
SOFTWARE TOOL FOR TRANSLATING PSEUDOCODE TO A PROGRAMMING LANGUAGE
SOFTWARE TOOL FOR TRANSLATING PSEUDOCODE TO A PROGRAMMING LANGUAGESOFTWARE TOOL FOR TRANSLATING PSEUDOCODE TO A PROGRAMMING LANGUAGE
SOFTWARE TOOL FOR TRANSLATING PSEUDOCODE TO A PROGRAMMING LANGUAGE
 
NASAfinalPaper
NASAfinalPaperNASAfinalPaper
NASAfinalPaper
 
Sentence-to-Code Traceability Recovery with Domain Ontologies
Sentence-to-Code Traceability Recovery with Domain OntologiesSentence-to-Code Traceability Recovery with Domain Ontologies
Sentence-to-Code Traceability Recovery with Domain Ontologies
 
12 iec t1_s1_oo_ps_session_17
12 iec t1_s1_oo_ps_session_1712 iec t1_s1_oo_ps_session_17
12 iec t1_s1_oo_ps_session_17
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Toward Understanding How Developers Recognize Features in Source Code from De...
Toward Understanding How Developers Recognize Features in Source Code from De...Toward Understanding How Developers Recognize Features in Source Code from De...
Toward Understanding How Developers Recognize Features in Source Code from De...
 
Annotating with Annotations - PHPBenelux June/2012
Annotating with Annotations - PHPBenelux June/2012Annotating with Annotations - PHPBenelux June/2012
Annotating with Annotations - PHPBenelux June/2012
 
chap4 : Converting and Casting (scjp/ocjp)
chap4 : Converting and Casting (scjp/ocjp)chap4 : Converting and Casting (scjp/ocjp)
chap4 : Converting and Casting (scjp/ocjp)
 
Model-Driven Development in the context of Software Product Lines
Model-Driven Development in the context of Software Product LinesModel-Driven Development in the context of Software Product Lines
Model-Driven Development in the context of Software Product Lines
 
Lecture21 categoriesof userdefinedfunctions.ppt
Lecture21 categoriesof userdefinedfunctions.pptLecture21 categoriesof userdefinedfunctions.ppt
Lecture21 categoriesof userdefinedfunctions.ppt
 
Extending and scripting PDT
Extending and scripting PDTExtending and scripting PDT
Extending and scripting PDT
 
NoTube: Metadata Interoperability
NoTube: Metadata InteroperabilityNoTube: Metadata Interoperability
NoTube: Metadata Interoperability
 

Similar to OOPSLA02 BehavioralSemantics.ppt

Oopsla02 behavioralsemantics.ppt
Oopsla02 behavioralsemantics.pptOopsla02 behavioralsemantics.ppt
Oopsla02 behavioralsemantics.ppt
Yann-Gaël Guéhéneuc
 
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.
 
Introduction to Behavior Driven Development
Introduction to Behavior Driven Development Introduction to Behavior Driven Development
Introduction to Behavior Driven Development
Robin O'Brien
 
BizTalk & WCF LOB SDK Adapter's Custom Behaviors
BizTalk & WCF LOB SDK Adapter's Custom BehaviorsBizTalk & WCF LOB SDK Adapter's Custom Behaviors
BizTalk & WCF LOB SDK Adapter's Custom Behaviors
Abid Nasim
 
OMG CORBA Component Model tutorial
OMG CORBA Component Model tutorialOMG CORBA Component Model tutorial
OMG CORBA Component Model tutorial
Johnny Willemsen
 
Emotion recognition from facial expression using fuzzy logic
Emotion recognition from facial expression using fuzzy logicEmotion recognition from facial expression using fuzzy logic
Emotion recognition from facial expression using fuzzy logic
Finalyear Projects
 
Bc0055, tcpip
Bc0055, tcpipBc0055, tcpip
Bc0055, tcpip
smumbahelp
 
Bt0066 database management system2
Bt0066 database management system2Bt0066 database management system2
Bt0066 database management system2
Techglyphs
 
Demystifying dot NET reverse engineering - Part1
Demystifying  dot NET reverse engineering - Part1Demystifying  dot NET reverse engineering - Part1
Demystifying dot NET reverse engineering - Part1
Soufiane Tahiri
 
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
 
Devops interview questions 1 www.bigclasses.com
Devops interview questions  1  www.bigclasses.comDevops interview questions  1  www.bigclasses.com
Devops interview questions 1 www.bigclasses.com
bigclasses.com
 
C# tutorial
C# tutorialC# tutorial
C# tutorial
sarangowtham_gunnam
 
Nt1310 Unit 3 Language Analysis
Nt1310 Unit 3 Language AnalysisNt1310 Unit 3 Language Analysis
Nt1310 Unit 3 Language Analysis
Nicole Gomez
 
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
 
Something for Nothing
Something for NothingSomething for Nothing
Something for Nothing
Kevlin Henney
 
Designing A Project Using Java Programming
Designing A Project Using Java ProgrammingDesigning A Project Using Java Programming
Designing A Project Using Java Programming
Katy Allen
 
Advanced web application architecture - Talk
Advanced web application architecture - TalkAdvanced web application architecture - Talk
Advanced web application architecture - Talk
Matthias Noback
 
Sorted
SortedSorted
Pal gov.tutorial1.session7 2.finalcheckandschemaengineeringissues
Pal gov.tutorial1.session7 2.finalcheckandschemaengineeringissuesPal gov.tutorial1.session7 2.finalcheckandschemaengineeringissues
Pal gov.tutorial1.session7 2.finalcheckandschemaengineeringissues
Mustafa Jarrar
 
dotnet_remoting
dotnet_remotingdotnet_remoting
dotnet_remoting
OPENLANE
 

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...
 
Introduction to Behavior Driven Development
Introduction to Behavior Driven Development Introduction to Behavior Driven Development
Introduction to Behavior Driven Development
 
BizTalk & WCF LOB SDK Adapter's Custom Behaviors
BizTalk & WCF LOB SDK Adapter's Custom BehaviorsBizTalk & WCF LOB SDK Adapter's Custom Behaviors
BizTalk & WCF LOB SDK Adapter's Custom Behaviors
 
OMG CORBA Component Model tutorial
OMG CORBA Component Model tutorialOMG CORBA Component Model tutorial
OMG CORBA Component Model tutorial
 
Emotion recognition from facial expression using fuzzy logic
Emotion recognition from facial expression using fuzzy logicEmotion recognition from facial expression using fuzzy logic
Emotion recognition from facial expression using fuzzy logic
 
Bc0055, tcpip
Bc0055, tcpipBc0055, tcpip
Bc0055, tcpip
 
Bt0066 database management system2
Bt0066 database management system2Bt0066 database management system2
Bt0066 database management system2
 
Demystifying dot NET reverse engineering - Part1
Demystifying  dot NET reverse engineering - Part1Demystifying  dot NET reverse engineering - Part1
Demystifying dot NET reverse engineering - Part1
 
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 #)
 
Devops interview questions 1 www.bigclasses.com
Devops interview questions  1  www.bigclasses.comDevops interview questions  1  www.bigclasses.com
Devops interview questions 1 www.bigclasses.com
 
C# tutorial
C# tutorialC# tutorial
C# tutorial
 
Nt1310 Unit 3 Language Analysis
Nt1310 Unit 3 Language AnalysisNt1310 Unit 3 Language Analysis
Nt1310 Unit 3 Language Analysis
 
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)
 
Something for Nothing
Something for NothingSomething for Nothing
Something for Nothing
 
Designing A Project Using Java Programming
Designing A Project Using Java ProgrammingDesigning A Project Using Java Programming
Designing A Project Using Java Programming
 
Advanced web application architecture - Talk
Advanced web application architecture - TalkAdvanced web application architecture - Talk
Advanced web application architecture - Talk
 
Sorted
SortedSorted
Sorted
 
Pal gov.tutorial1.session7 2.finalcheckandschemaengineeringissues
Pal gov.tutorial1.session7 2.finalcheckandschemaengineeringissuesPal gov.tutorial1.session7 2.finalcheckandschemaengineeringissues
Pal gov.tutorial1.session7 2.finalcheckandschemaengineeringissues
 
dotnet_remoting
dotnet_remotingdotnet_remoting
dotnet_remoting
 

More from Ptidej Team

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
Ptidej Team
 
Presentation
PresentationPresentation
Presentation
Ptidej Team
 
Presentation
PresentationPresentation
Presentation
Ptidej Team
 
Presentation
PresentationPresentation
Presentation
Ptidej Team
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
Ptidej Team
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
Ptidej Team
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
Ptidej Team
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
Ptidej Team
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
Ptidej Team
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
Ptidej Team
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
Ptidej Team
 
MIPA
MIPAMIPA
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.ppt
Ptidej Team
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
Ptidej Team
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
Ptidej Team
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
Ptidej Team
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
Ptidej Team
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
Ptidej Team
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
Ptidej Team
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
Ptidej Team
 

More from Ptidej Team (20)

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
 
MIPA
MIPAMIPA
MIPA
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.ppt
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
 

Recently uploaded

Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 

Recently uploaded (20)

Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 

OOPSLA02 BehavioralSemantics.ppt

  • 1. Integrating Behavior Protocols in Enterprise Java Beans Andrés Farías Yann-Gaël Guéhéneuc Speaker: Jacques Noyé École des Mines Object Technology de Nantes, France International, Inc., Canada Behavior protocols as behavior specifications of components. 1
  • 2. 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 Integratingexplicit protocols in the EJB component model. 2/10 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. 2
  • 3. Example: A chat server ChatServer Implementation search(Message) Message Board post(Message) Client Login login() logout() 3/10 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. 3
  • 4. What are protocols? Interface Method declaration n Sequential constraints over service Clients ID requests/receptions. Implementation start Clients!: -post(Message) user+: -login() user-: -logout() 4/10 Clients*: +newMessage(Message) 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! 4
  • 5. 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? 5/10 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. 5
  • 6. 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(); … b: +m() -n() … this.n(); 6/10 … So in this slide you introduce the notion of a protocol at the le vel 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. 6
  • 7. A notion of coherence (2/2) n The protocol a component must follow is called Design-level Protocol. n Coherence between protocols: S-level a b I-level a b public class A { B b; public void n(){ … } public void foo (){ … b.m(); this.n(); 7/10 } } 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 Nierstrasz definition) 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”. 7
  • 8. 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. 8/10 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… 8
  • 9. Explicit protocols in the EJB execution deployment assembly Development Descriptor files Interface Code source 9/10 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… 9
  • 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 10/10 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. 10