SlideShare une entreprise Scribd logo
1  sur  10
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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-13Coen De Roover
 
Framework engineering JCO 2011
Framework engineering JCO 2011Framework engineering JCO 2011
Framework engineering JCO 2011YoungSu 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 SearchShinpei 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_10Niit Care
 
C programming interview questions
C programming interview questionsC programming interview questions
C programming interview questionsadarshynl
 
Evolution of Patterns
Evolution of PatternsEvolution of Patterns
Evolution of PatternsChris Eargle
 
Visualizing Stakeholder Concerns with Anchored Map
Visualizing Stakeholder Concerns with Anchored MapVisualizing Stakeholder Concerns with Anchored Map
Visualizing Stakeholder Concerns with Anchored MapTakanori 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 LANGUAGEIJCI JOURNAL
 
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 OntologiesShinpei 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_17Niit Care
 
Design Patterns
Design PatternsDesign Patterns
Design Patternssoms_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/2012Rafael 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 LinesMarkus Voelter
 
Lecture21 categoriesof userdefinedfunctions.ppt
Lecture21 categoriesof userdefinedfunctions.pptLecture21 categoriesof userdefinedfunctions.ppt
Lecture21 categoriesof userdefinedfunctions.ppteShikshak
 

Tendances (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
 

Similaire à 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...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 BehaviorsAbid Nasim
 
OMG CORBA Component Model tutorial
OMG CORBA Component Model tutorialOMG CORBA Component Model tutorial
OMG CORBA Component Model tutorialJohnny 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 logicFinalyear Projects
 
Bt0066 database management system2
Bt0066 database management system2Bt0066 database management system2
Bt0066 database management system2Techglyphs
 
Demystifying dot NET reverse engineering - Part1
Demystifying  dot NET reverse engineering - Part1Demystifying  dot NET reverse engineering - Part1
Demystifying dot NET reverse engineering - Part1Soufiane 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.combigclasses.com
 
Nt1310 Unit 3 Language Analysis
Nt1310 Unit 3 Language AnalysisNt1310 Unit 3 Language Analysis
Nt1310 Unit 3 Language AnalysisNicole 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 NothingKevlin Henney
 
Designing A Project Using Java Programming
Designing A Project Using Java ProgrammingDesigning A Project Using Java Programming
Designing A Project Using Java ProgrammingKaty Allen
 
Advanced web application architecture - Talk
Advanced web application architecture - TalkAdvanced web application architecture - Talk
Advanced web application architecture - TalkMatthias Noback
 
Pal gov.tutorial1.session7 2.finalcheckandschemaengineeringissues
Pal gov.tutorial1.session7 2.finalcheckandschemaengineeringissuesPal gov.tutorial1.session7 2.finalcheckandschemaengineeringissues
Pal gov.tutorial1.session7 2.finalcheckandschemaengineeringissuesMustafa Jarrar
 
dotnet_remoting
dotnet_remotingdotnet_remoting
dotnet_remotingOPENLANE
 

Similaire à 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
 

Plus de Ptidej Team

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software MiniaturisationPtidej Team
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel BriandPtidej Team
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel AbdellatifPtidej Team
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh KermansaraviPtidej Team
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel GrichiPtidej Team
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano PolitowskiPtidej 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 crisisPtidej Team
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptPtidej Team
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptPtidej Team
 

Plus de 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
 

Dernier

Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 

Dernier (20)

Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 

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