This is a set of animations to accompany the more comprehensive article of the same name.
You can view or download the article here:
Client-Server Interlock State Pattern
Here's the exerpted introduction to a state pattern paper that I wrote in January of 2006. I forgot to put it online until a discussion group thread prompted me to make it available.
One object, let's call it the server, performs a task or makes a resource available to one or more client objects. Synchronization is required as follows: 1) A client must wait if the server is busy at the time of request 2) The server must wait if there are no clients requesting service 3) If the server is idle and a client requests service, the server must be activated 4) If multiple clients request service simultaneously, service will be provided serially based on some criteria such as "first come - first serve". Since a single server is dedicated to a pool of one or more clients, there is no need for the assigner mechanism described in [Mellor 1].
Here's the key trouble to avoid: 1) Clients don't hang: every client is serviced as soon as possible. 2) The server doesn't hang: it never goes idle leaving clients to wait pointlessly...
Model Level Threads - Part 5 and Elevator Tech Notes
This excerpt from the upcoming sequel to Leon's "Executable UML Case Study" book is freely available for your review. It introduces a new notation for use in conjunction with UML sequence and collaboration diagrams for analyzing parallel, synchronizing activity. If you venture past the first few pages, you will want to also download the PDF Elevator 2.0 Models as the text takes you step by step through two model execution threads, demonstrating both the notation and detailed model behavior.
Elevator 2.0 Models in PDF and Text
Here is the complete set of PDF Elevator 2.0 models with action language in both PDF and plain text. There are a lot of large drawings formatted for best printing as Architectural D (36in x 24in). There is a presentation that summarizes the model changes from Elevator 1.0 to 2.0 in the Presentation Downloads section below.
Executing Elevator 2.0 Models in Nucleus BridgePoint 6.x
This Elevator 2.0 BridgePoint Export may not be as pretty as the PDF, but you can execute the models! Both bak and sql exports are included in the zip file.
If you want to see the final product running on your PC with lights, buttons, and animated cabins going up and down, you need the Elevator 2.0 Executable and GUI. Installation instructions in the readme file.
Leon Starr has specified a new hybrid text-graphical action language inspired by Shlaer-Mellor's Small.
Scrall is consistent with UML 2.0 action semantics. There are two documents you can download. First, there is a description of the language. Second, there are some examples of OAL (Project Technology's Action Language) expressed side by side with Scrall.
Key features of this language:
All symbols easy to draw on a whiteboard
Data flow and relational access concepts directly supported
Hybrid text-graphical for ease of expression
This language is still in the research phase and definitely requires a good graphical editing environment to make it practical.
We're working on it. In the meantime, any user input is greatly appreciated in the Scrall discussion group.
Andrew Mangogna has assembled a preliminary set of scripts that extract data from BridgePoint repositories. You can use these scripts to extract information about the Elevator Case Study Model from the BridgePoint repository and even generate some code. Documentation is included in the download. More tools on the way!