Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Contents
SOLUTION 1. FUNDAMENTAL ARCHITECTURAL CONCEPTS ............................................................................. 3 SOLUTION 2. SYSTEM ARCHITECTURE DEVELOPMENT GUIDELINES ............................................................... 5 SOLUTION 3. QUALITY OF SERVICE REQUIREMENTS ....................................................................................... 8 SOLUTION 4. JEE TECHNOLOGY SERVERS .....................................................................................................10 SOLUTION 5. JEE TECHNOLOGIES ..................................................................................................................12 SOLUTION 6. JEE TECHNOLOGY CHOICES ......................................................................................................14 SOLUTION 7. PROTOTYPES .............................................................................................................................17 SOLUTION 8. SOFTWARE ARCHITECTURE .......................................................................................................18 SOLUTION 9. DATA TRANSFER, TRANSACTIONS AND SECURITY IN DISTRIBUTED COMPUTING ......................20
Review and approval Mentoring Test support Implementation Team leadership Conduit to project management
It requires users to download and install an appropriate JRE (Java Runtime Environment). This can take considerable time and would certainly frustrate users. In some cases, users may not have the authority to install the JRE on their workstation. The application Dave worked on was an intranet application so the local IT department had much more control over the user workstations and could more easily install the appropriate JRE. Traffic that uses the IIOP protocol may not be allowed out of the users firewall. If the server listens on a port other than 80, it is likely that the users firewall will block outgoing traffic regardless of whether IIOP is allowed or not. Again, the HR application that Dave worked on did not have this issue because the traffic did not pass through an external firewall or if it did, the local IT department had full control over the firewall. 3. Ideally, the creation of an order, the debiting of the customers credit card and the updating of the shipping & inventory system would be performed in a single transaction. 4. The advantages and disadvantages of using XWU-AS technology on this project are: Advantages: Pam understands the technology and she would be able to develop faster in XWU-AS than with JEE. Disadvantages: Dave and possibly other developers need to learn the new technology. XWU-AS is a proprietary technology and one of the goals of the project is to avoid vendor lock-in. JEE technology facilitates this goal.
Maintainability Application support is important to SportyStuf and proper documentation must be made available Manageability The system should be easy to manage. 2. The following quality of service conflicts occur: Scalability is reduced by security. For example, the use of SSL reduces scalability. Manageability is made more difficult by the additional complexity required for security, scalability, cultural adaptability, and portability. Manageability is probably the best QoS to decrease in order to achieve all of the other QoS requirements.
10
X 6
X 4
Clustering, sophisticated load balancing, entity bean caching, instance pooling, and deferred database writes support the scalability requirement Administration supports the manageability requirement Security supports the security requirement Support for distributed transactions is also required because there are multiple resources to manage (the database and the shipping & inventory system, for example)
If we keep it simple and rank each characteristic with the same weight, server 2 is the best choice for the new SportyStuf system.
11
12
13
14
7. Here are some of the more important MOM features that support high availability and reliability: Guaranteed message delivery means that messages are stored in such a way as to survive system crashes and are guaranteed to be delivered to one consumer in a PTP domain and to all consumers in a Pub/Sub domain. Without this guarantee, messages could be lost during failures or unusual circumstances. Store and forward is a feature where the producer detects that the MOM system itself is down and stores messages locally until the MOM system is restored. Message retry is when the MOM system has the ability to retry failed messages. If the message fails a certain number of times, it is sent to a poison message queue. 8. With asynchronous messaging, performance can be increased considerably because a client can send a message to a server and continue to do other work while the server processes the message. The client can then receive a callback message from the server with the results and process this response at its leisure. However, the performance of send and wait calls is better in synchronous systems. This is when a client makes a call to a server and then waits for a result. This type of request is slightly slower in an asynchronous situation due to the extra messaging layer and message parsing overhead.
15
the user creates an order, we could place a message on a queue to be processed later by an order processor message-driven bean. When the order processor gets the message, it debits the credit card, updates the shipping & inventory system and sends an email to the customer with the results.
16
Solution 7. Prototypes
Part 1. Answers to General Questions
1. You could develop a conceptual prototype to elicit the requirements from the users. The fact that they tend to communicate their needs after an application has been built suggests a more sophisticated prototype is required. For example, use an HTML mockup rather than a few screen shots thrown up on a whiteboard. 2. A conceptual prototype is a good idea but you probably wouldnt need to spend a lot of time making it work. A few screen shot mockups on a whiteboard would probably suffice since the application already has a common look and feel that the users are used to. They should be able to get a good understanding just from the whiteboard mockups. 3. An evolutionary prototype is one that will be built upon over several iterations and will eventually become the working, production-quality system. Hence, the developer should follow any established coding standards. If it were a throw-away prototype, the coding standards would not be as important and in fact, could get in the way of the goals of the throw-away prototype (i.e. building it quickly).
17
18
19
20
up to the browser to present this screen. One of the requirements is to present a professional user interface. Form-based login allows the developers to implement their own login page and does not require a client-side certificate so it is the most appropriate choice. 4. Server authentication could be handled using SSL. With SSL, a server side certificate is installed on the web server(s). The certificate must be signed by a CA (Certificate Authority) that is well known and has public certificates in all popular browsers. 5. SSL provides message integrity since messages between the users browser and the server (and vice versa) use digital fingerprint verification techniques. 6. SSL provides message confidentiality since messages between the users browser and the server (and vice versa) are encrypted. Confidentiality is important because first time users provide their credit card number during user registration. It is also important to keep the users user id and password confidential so attackers do not capture this information and login and buy products on behalf of the user or even worse, change their address so it comes to an address that the attacker can pick the product up at.
21