Sun Certification Tutorials
Certification
Sun CertificationUseful Documentation for preparing SCEA
Useful Documentation for preparing SCEA
Tasks
Java Applications Architecture
The first questions you will see in the exam will cover what a JA is, what he does, what an an archtecture is and how the architecture fits into the application development lifecycle. The follow description of a JA is taken directly from the SCJA web site.
The Role of the Java Architect
- Advises on the use of Java for maximising business benefits: - JA must advise on Java, by having a breadth of knowledge about how Java works, it capabilities and limitations, the Java API's, the products that are currently available and the advantages and disadvantages of Java based solutions. He advises the application development team how Java can benefit the business. The solution should be focused to the business needs even if this involves recommending alternative technology.
- Recognizes the major architectural issues and trade-offs faced when designing Java solutions: - If a system requires security where there will be an impact on peformance the architect must recognize these issues and then resolve them by selecting a solution that trades off between conflicting issues with the business requirements.
- Evaluates the advantages and disadvantages of using Java technology for enterprise applications:- Must be aware of the pros and cons of the Java technologies, for example RMI and CORBA and then to maximise the benefits and minimise the disadvantages of the chosen approach within the design.
- Designs distributed object architectures to a given set of business requirements: - Choose the distributed architecture that best meets the needs of the customer.
- Designs three- or n-tier architectures for key busines scenarios: - Understand the benefits of tiered architecture and to develop architectures which take advantage of these benefits in meeting customer requirements.
- Can compare object-oriented architectures based on Java technologywith CORBA and DCOM alternatives per customer requirements.: - JA must have a detailed understanding of RMI, CORBA and DCOM with respect to Java and then consider these against the requirements.
- Evaluates proposed Java technology architectures and makes recommentations to increase performance and security: - Be able to evaluate proposed architectures with regard to perormance and security and then develop solutions that resolve these problems.
- Integrates security contraints into a Java application architecture: - Integrate security countermeasures whether achitecturally using VPN, Firewalls and SSL or by using signed applets, encryption and authentication and security auditing.
- Recommends tecniques for effectively deploying and distributing Java technology solution in production: - Designing and developing a distributed solution is only half the battle. The JA must bear the deployment in mind at design time by taking advantages of solutions that ease deployment such as Java applets.
- Can advise on ways java technology prototypes or pilot applications can effectively be moved to production status.: - The JA must coordinate the deployment strategy with regard to legacy system and data transfer or parallel running.
- Requirements Analysis: - JA works with customer to establish needs, specify a set of application requirements hat when satisfied will fulfill those needs. These requirements must be elaborated sufficiently for design to take place. A balance must be found between too high leve a requirement that it fails to capture the customer need or too low level a requirement that preclude valid design alternatives. Proofs of concept may be developed during this phase that points out areas for futher definition of requirements
- Design: - Must come up with an overall application design that provides a framework in which all requirements can be satisfied. It must address the client, application business logic and data storage tiers. It should identify application internal and external interfaces and address performance and security. Flexibility, scalability, upgradability and manageabliilty?, deployment, distribution, operation and maintenance must also be considered. Special views of the architecture may need to emphasised for use by specialist departments to enable security to be put in place for example. Work must continue with the customer and development to thrash out a detailed design. This should involve selecting commercial products, identifying legacy component reuse and which elements of the system will be developed. Where possible commerical products should be used due to cost effectiveness. Legacy software is the next best option for proven. New developments should be completed using OO techniques.
- Implementation: - Manage feedback and update design where necessary.
- Validation: - Independant analysis and testing that verifies requiremnts have been met.
- Deployment
- Operation and Maintenance
- One- and Two-Tier architecures: - Legacy applications are normally one or two tier. Single tier systems are not distributed as the client, business logic and data storage are wrapped up on a single PC. These are suitable for one person applications. Single tier are limited in scalability and ability to be integrated with other enterprise systems. They are easier to secure often using single access controls. Two-tier systems: - client contains user interface, business logic and software to cimmunicate with the database which sits on a remote server. Also know as fat-client systems. Often difficult to upgrade due to the vusiness logic being entwined with the user interface code. These do not take advantage of the web paradigm whic distributes the application among clients, web servers, application servers and back-end databses.
- Three- and n-Tier architectures: - Client typically provided by a browser with the interface being implemented by HTML, and Java applets where HTML does not provide the required level of functionality. The pplication business logic is implemented on a separate server. The tird tier is the database server. Other levels may be added such as a tier to support persistance access leaving the business logic free from the databse coupling. £T is easier and cheaper to deploy, upgrade, scale and maintain. Ease of deployment is achieved via a web based client. Upgrades are immediately available through upgrades to the web server only. As the business logic is not tied to the client it can be changed without affect on the client if the business logic interface stays the same. It can be scaled by adding grunt to the buiness logic and data storage tiers only.
- Publish/Subscribe Architectures: - Most C/S systems use synchronous communication. TIBCO developed a protocl know as publish/subscribe. Use subject based addressing? Is this the same as the event handling concept in J? Read on TIBCO
- Synchronous and Asynchronous architectures: - Distributed system architectures can be characterized by the types of communication their components support. Snail mail is an example of asynchronous coomunication as the message is sent and the process doesn't need to wait for a reply. Web requests are typical of synchronous as they expect a request when you type in a URL. Asynchrounous systems have the advantage that they can send their data at their discretion and take advantage or low band-width usage as can the receiver when dealing with the message. this makes the systems more scalable becaus of the loose coupling between the components.?
- Internet, Intranet and Extranet Architectures: - Internet systems typically support a very large user base. They must be scalable, secure and available. Intranets have a smaller user base, must be secure from the internet (via firewalls). They must also be secure within organizations. Availability is likely not as Internet. Extranets are for secure use across the Internet and are limited to trusted organisations. Strong authentication and encryptions are required. They typically have a small user base. Availabilty as per Intranets.
Basic OO Design Concepts
Primary objective is to simplify software development through the reuse of objects. This results is software that is quicker to develop, more reliable and costs less. The following support this: -
- Instantiation
- Inheritance
- Composition
- Packages
- Interfaces
- Encapsulation
- Polymorphism
- Distributed Objects
- Components
- The Java 2 platform and other APIs
OMT, OOAD and OOSE have merged into UML which specified the following disgrams: -
- Use case
- Package
- Class
- Object
- Sequence
- Collaboration
- State
- Activity
- Component
- Deployment
Architecting OO Applications
On the certification exam you will see questions about the phases of the OO development lifecycle: -
- Problem statement: - Identifies problem or opportunity. Initiates the requirements analysis phase.
- OO Analysis: - Idntify application software using OO techniques. Use case diagrams define the users view of the system and provide visibility into the systems busines logic. Classes are identified that represent the types of object that occur in the application. Heirarchical class relationships are specified. The attributes and methods are described. Interfaces are also identified. Classes and interfaces are organised into packages and package relationships diagrammed. Relationships between classes and interfaces are identified. Object disgrams may be used to specify specific instances of the classes being modeled. Seuqnece diagrams, state diagrams may also be used.
- Java Architecture Design. Used to specify data exchange requirements between this and external legacy systems, databases and the internet. Application performance, security and reliability are considered. For example, any low-bandwidth communication lines will appear which may need to be replaced or identified as potential bottlenecks. Unprotected paths to the Internet should also be identified at this stage. Firewall or VPN requirements may be idntified. A single web server may be identified as a single point of failure which may affect system reliability. This stage should identify what technologies are being used and where. Deployment diagrams may be used to identify software allocation to processing nodes and communication links between those nodes. Client, logic and data tiers must be considered at this point.
- OO Design: - Although requirements preceds design, design may identify further requirements, for example a design choice of applets may establish a signed applet security requirement. Purpose of system design is to identify a solution to the customers requirements. The application architecture depicts the overall design solution. It is refined into lower-level designs that are comprised of three types of components: -
- Legacy components
- Vendor products: - This is the cheapest approach if a packages fits the customer requirements.
- New developments
- Object Generation: - code creation from design, possible using case tools.
Distibuted Application Technologies
Covers the objectices: -
- Be able to discuss the advantages of Java servlets compared to CGI scripts
- Know how to design a detailed architecture including Java applet and application server design
- Know how to compare a distributed Java architecture with the OMG CORBA and Microsoft alternatives
- Know how to dsign a detailed architecture for integrating Java with existing databases and applications
- Know how to design a 3-tier architecture using EJB
- Be able to describe how Java can be used for Transaction processing.
HTML
URL
Addresses for Internet accessible resources.
HTTP
Protocol used for communicating between web clients and servers. Synchronous request response architecture based on TCP/IP. Web server have default port of 80. Requests consist of a request method (get post etc.), the URL being requested & the version of HTTP supported by the browser. Responses start with an HTTP header that provides info about the server, errors encountered in the processing, MIME type information. MIME types are used to specify the type of content contained in a response. Post differs from get in the way data is marshalled by the request. Post send data via stream, get sends it in environment variables. Most browsers and server support HTTP 1.1. It incorporates performance, security... over HTTP 1.0. One ability is to maintain a TCP connection between browser and server (keep alive). Prevent several request response connections for a single page. HTTP-NG on the horizon.
Applets
HTML now has antag for applets.
