Sun Certified Enterprise Architect EE5 Assignment (Part II)

Candidate: Ignacio del Valle Alles, Oracle Testing ID: SR1825921
Valid XHTML 1.0 Strict

1. Introduction

The following document is complete Sun Certified Enterprise Architect EE5 Assignment (Part II) solution for the following requirements: unchanged downloaded instructions.

2. UML Diagrams

2.1. Notations

2.1.1. Stereotypes

The following stereotypes are used overall the documentation:
  • <<external>>:
    Abstractions external to the SuD.
  • <<framework>>:
    All general purpose funtionality not exclusive to the SuD is estereotyped as "framework". This funtionality can be implemented by third party libraries or need to be implemented from scratch. Framework resources are deployed as shared libraries, in order to be reusable among (future) applications.
  • <<dreamcar>> Security role:
    Artifacts stereotyped can be executed only by "dreamcar" users.
  • <<supplier>> Security role:
    Artifacts stereotyped can be executed only by "supplier" users.
  • JEE annotations:
    Stereotype names stating with '@' represent a JEE annotation.

2.1.2. Colors

The following colors are used in component, class and deployment diagrams to favor readability:
  • "framework" stereotyped abstractions
  • SuD abstractions
  • Abstractions external to the SuD.

2.2. Component diagram

The following diagram shows the main components in the SuD, and their interactions.

2.3. Class diagrams

2.4. Sequence diagrams

2.4.1. Use case diagrams

Use cases
Post Request for Parts sequence diagram Review Open Bids Submit Bid for Open Parts Request Issue PO to Winning Bidder Schedule Work in	Factory

2.4.2. Other main sequence diagrams

Main sequence diagrams not covered by use cases.

2.4.3. Common diagrams

Helper diagrams used by other diagrams.

2.5. Deployment diagrams

2.6. Other diagrams

3. Risk and mitigation list

Despite of not being explicit mentioned in the requirements the following are the top three technical risks identified in the project and a mitigation strategies:

3.1. Security issues

The major risk identified for this application is security vulnerabilities. If the system is compromised, several companies can be affected (dreamcar and suppliers). These are some security related risks:
  1. Man in the middle attacks
  2. Modification of the PO by a third party
  3. Compromised node
  4. Phising
  5. DNS spoofing
  6. Brute force attacks
Mitigation strategies:

3.2. Reliability issues

The ability to ensure the integrity and consistency of the application and all its transactions. Reliability flaws in the system can be very hard to detect and correct, sometimes resulting in the need of a complete application redesign. These are some reliability related risks:
  1. Concurrent modifications of the same data
  2. Concurrent request creation for the same parts
  3. Ensuring PO delivery
  4. Ensuring reliability supposing the Inventory Service non XA transactional
Mitigation strategies:

3.3. Scalability issues

The system must be able to accommodate to an arbitrary (growing) load, fulfilling performance and availability QoS specifications. This ability is mandatory, since:
  1. Provided specifications do not estimate expected loads
  2. The system is known to have a growing load in the future (additional markets will be supported)
Mitigation strategies:

4. Assumptions

4.1. Inventory System

Locking is needed to mantain reliability (not several requests for the same parts). Inventory system web service is supossed to offer this functionality and is called in request creation and closing to lock and unlock the parts. If the existing service would not provide this functionality it can be performed remotely (in the wrapper implementation InventorySystem) as long as the webservice API would let identify the parts somehow. The inventory system is not supposed to be XA transactional, despite of being desired. Sequence diagrams using this system have been designed to use the service after all transactional calls have been made. This way in case of an error using this service, a global rollback could be made.

4.2. Relationship multiplicities

The provided BDM (business domain model) has several uncertainness. The solution adopted has been to keep that BDM (see DAL class diagram) as generic and extensible as possible, never adding restrictions to the original, despite of the current SuD not fully exploiting its features.
These are the problematic relationships:

4.3. Review Open Bids

Review Open Bids use case definition states:
"1. Dreamcar representative searches for open bids and selects one of interest."
"2. System responds with all bid requests relating to the selected bid request. "

Since request-bids multiplicity is 1:* the previous statements must contain several typographical errors. The use case definition has been interpreted as follows:
"1. Dreamcar representative searches for open bid requests and selects one of interest."
"2. System responds with all bids relating to the selected bid request. "

4.4. Winning bidder

Issue PO to winning bidder use case definition states:
"4. Dreamcar representative reviews all bids to ensure that the most valid bid has been chosen."
"5. Dreamcar representative accepts the most suitable bid. "

Is not clear what is the procedure that choose the most valid bid, and what happens if the representative do not accept that chosen bid.

The solution adopted is giving the user an ordered view of the bids based on the ascending price, (the chosen then will be implicitly the first in the list), and allowing the dreamcar representative to select any of the bids, and mark it as the winner.

5. Design complementary notes

5.1. Application security architecture

SuD must use JEE standard security architecture (see JSR 244, J2EE.3.3) with the following properties:
Defined roles: Authentication procedure: HTTPS Client Authentication
Authorization rules: Deployment mapping: Defined roles are mapped at deploy time to LDAP groups of the same name, that must be maintained externally to the SuD.

5.2. Error handling and logging

Error handling: Service to worker pattern is mandatory in order to have all model charged before the view rendering begins. If an error occurs the user must be redirected to the last view successfully rendered and show an non technical error message.
Logging: The following logging is mandatory, and will be implemented by LoggingFilter in PL and LoggingInterceptor in BLL:

5.3. Environment dependent properties

All resources dependent of the environment (usually configuration files) must be deployed externally to the ear.
The first time the application is deployed in an environment, the deployer must create the shared library Environment dependent properties (see deployed artifacts diagram). This library contains a single properties file for the environment dependent properties. The deployer must edit the file (according to the bean provider instructions), in order to give the properties the right value for that environment.
Future deployments of the application will not require any special action, just install the new ear, and associate the shared library.
The purpose of this procedure is to keep the ear unchanged between environment promotions, making the application more maintainable.

5.4. Internationalization

All jsp text readable by the client must be externalized to properties files according to PropertyResourceBundle specification. That makes the application more extensible to support new languages and easier to maintain.

5.5. Application lifecycle

Environments:

5.6. Enrolling a new supplier

When a new supplier is going to be enrolled the following actions must be manually performed: