| | Concurrency control: pessimistic or optimistic locking |
|
| | Pessimistic locking: immediate locking upon request |
|
| | Optimistic locking: clearing at commit time |
|
| | Software design patterns: solution template for many situations |
|
| | OO design pattern: relationships and interactions between classes or objects |
|
| | Mutable: prone to frequent change |
|
| | Immutable: not subject to change
Types of design patterns: creational, structural, behavioral and concurrency |
|
| | Creational design patterns: Lazy initialization, Multiton, Singleton, etc. |
|
| | Structural design patterns: Adapter, Composite, Decorator, etc. |
|
| | Behavioral design patterns: Chain of responsibility, Iterator, Memento, etc. |
|
| | Concurrency design patterns: Lock, Scheduler, Thread pool, etc. |
|
| | Iterator design patterns: Collections -- List<string> |
|
| | Stateless protocol: each request a transaction independent of previous requests |
|
| | Stateless object: no attributes, only methods, lower invocation overhead |
|
| | Multi-tier architecture: presentation, application processing, and data management are separate processes |
|
| | Business Logic Layer (BLL): business process objects and business entities |
|
| | Stateless business layer: minimal overhead for long-running transactions |
|
| | Entity Data Model (EDM) diagrams: scalar properties, navigation properties, etc. |
|
| | Sequence diagram: interaction diagram showing how processes operate with one another and in what order |
|
| | ArchiMate: an open and independent enterprise architecture modeling language |
|
| | Component-based design (CBD): a reuse approach to defining, implementing and composing loosely coupled independent components into systems |
|
| | Software component: a software package, a Web service, or a module that encapsulates a set of related functions |
|
| | Service-orientation: a design paradigm to build computer software in the form of services |
|
| | Service-oriented architecture: a set of principles and methodologies for designing and developing software in the form of interoperable services |
|
| | SOA principles: reuse, granularity, modularity, composability, componentization and interoperability |
|
| | CBD or SOA: application of OOP at a higher level, e.g. to encapsulate a service as provided by an independent vendor |
|