# JAWS Overview

1. What is JAWS?
   JAWS is an application framework for the construction of Web systems.

   1. What is an application framework?
      On page 26 of [Gamma+95], a framework is defined as "a set of cooperating classes that make up a reusable design for a specific class of software."

      An application framework can be defined as a collection of cooperating frameworks that make up a reusable application software architecture for a specific application domain. An application framework is an application skeleton which can be customized by inheriting and instantiating from reuseable components in the software frameworks that it provides. The result is pre-fabricated design at the cost of reduced design flexibility.

   2. What is a Web system?
      A Web system is defined as any combination of services that are provided through the Internet and the World Wide Web (WWW). This includes file transfer services (HTTP, FTP), caching services, e-commerce, etc.

- What classes are part of JAWS, and how do they cooperate?
  The JAWS framework is roughly organized as 4 sub-frameworks.
  1. Events Framework
  2. Concurrency Framework
  3. Protocol Framework
  4. Caching Framework (still under development)

  1. What is the JAWS Events Framework?
     The JAWS Events Framework is arguably the most complicated sub-framework within JAWS. It contains the most number of interacting classes.

  2. What is the JAWS Concurrency Framework?

  3. What is the JAWS Protocol Framework?

  4. What is the JAWS Caching Framework?
     There is nothing to say about it, since it is not finished yet.

  # References

  [Gamma+95]

    Design Patterns: Elements of Reusable Object-Oriented Software, by E. Gamma, R. Helm, R. Johnson, and J. Vlissides, 1995, Addison-Wesley.

  [PLoPD1]

    Pattern Languages of Program Design, edited by J. Coplien and D. Schmidt, 1995, Addison-Wesley.

  [PLoPD2]

    Pattern Languages of Program Design 2, edited by J. Vlissides, J. Coplien, and N. Kerth, 1996, Addison-Wesley.

  [PLoPD3]

    Pattern Languages of Program Design 3, edited by R. Martin, D. Riehle, and F. Buschmann, 1998, Addison-Wesley.

  [PLoPD4]

    Pattern Languages of Program Design 4, Addison-Wesley.