Skip to content
rumineykova edited this page Apr 24, 2015 · 59 revisions

Welcome to the session-types-use-cases wiki! Use-cases for Sessions

#Objective: Compile a set of use-cases for sessions

#Coordinating Commitee: Dimitrios Kouzapas Rumyana Neykova Sam Lindley

#Repository Link: https://github.com/epsrc-abcd/session-types-use-cases

#Repository: will be structured as a set of folders with each folder corresponding to a use-case.

	Each sub-folder of each use-case will include one
	use-case requirement.

e.g.folder SMTP/Mungo contains the implementation of the SMTP usecase in Mungo folder Buyer-Seller/Scribble contains the Scribble protocol for Buyer-Seller

#Repository Requirements:

  1. Physical Language Description
  2. Session Type
  3. Scribble
  4. Pabble
  5. Typestate
  6. Global Graphs
  7. State Machine
  8. Any other visual representation
  9. Implementation
  • LINKS
  • SILL
  • Haskell
  • Mungo
  • Session Java
  • Python
  • MPI
  • Erlang
  • se-pi

Requirement 1 is obligatory At least one of the requirements from 2, 3, 4, 5 is obligatory Requirements 6, 7, 8 are optional Requirement 9 is obligatory for at least one implementation tool

#Application Domains:

  •           Business Protocols
    
  •   Network Applications
    
  •   Systems
    
  •   Operating Systems
    
  •   Data Structures and Algorithms
    
  •   Hardware
    
  •   Programming paradigms
    
  •   Security
    

#Usecases:

  •   ATM
    
  • Travel Agency
  • Bookstore
  • Simple Mail Transfer Protocol
  • Domain Name System
  • Network Topologies
  • Redis
  • SILL usecases
  • File Access Protocol
  • Python Benchmark
  • Cache Coherency Protocol

#Responsibilities:

Usecase: Simple Mail Transfer Protocol Domain: Network Protocols

| Requirements: | Physical Language Description (rfc reference) | Scribble Implementation: Session Java: Ray Mungo: Ornela LINKS: Sam

	Usecase:	Redis				Domain: Data Structures and Algorithms
	Responsibility:	Roly
	Requirements:	Physical Language Description
			Scribble
			State Machine
	Implementation: Mungo


	Usecase:	Domain Name System		Domain: Network Protocols
	Responsibility:	Simon Fowler
	Requirements:	Physical Language Description
			Scribble
			State Machine
	Implementation: Erlang


	Usecase:	Travel Agency			Domain: Network Application
	Responsibility:	Ray
	Requirements:	Physical Language Description
			Session Types
			Sequence Diagram
	Implementation: Session Java

	Usecase:	Bookstore			Domain: Network Application
	Responsibility:	Dimitris
	Requirements:	Physical Language Description
			Session Types
			Scribble
			Sequence Diagram
	Implementation:
			Session Java: Ray
			Mungo: Dimitris


	Usecase:	Network Topologies		Domain: Systems
	Responsibility: Nick
	Requirements:	Physical Language Description
			Pabble
			Diagrams (if any)
	Implementation:	MPI


	Usecase:	Data Structures			Domain: Data Structures and Algorithms
	Responsibility:	Dimitris
	Requirements:	Physical Language Description
			Session Types
			Typestate
	Implementation:	Mungo
			SILL

	Usecase:	Needham-Shroeder		Domain: Security
	Responsibility:	Rumi
	Requirements:	Physical Language Description (reference)
			Session Type
	Implementation:	SILL - Add Link to SILL usecases

	Usecase:	Concurrency Algorithms		Domain: Data Structures and Algorithms
	Responsibility:	Rumi
	Requirements:	Physical Language Description (reference your paper)
			Scribble
			Graphical Representation
	Implementation:	Python


	Usecase:	File Access Protocol		Domain: Data Structures/OS
	Responsibility	Dimitris
	Requirements:	Physical Language Description
			Typestate
	Implementation:	Mungo

	Usecase:	ATM				Domain: Network Applications
	Responsibility:	Sam
	Requirements:	Physical Language Description
			Session Type
	Implementation:	LINKS

	Usecase:	Cache Coherency Protocol	Domain:	Hardware
	Responsibility:	Dimitris
	Requirements:	Physical Language Description
			Scribble
	Implementation:	No implementation
Clone this wiki locally