Contents | Previous  | Next   | Home

Abi Rajan resources on SCJA Module 1

Analysis and Architecture Process

Introduction to the Architect Process using Java technology.
Describe the duties performed by a Java Architect.
State how Java architecture design fits into the application development lifecycle.
State the advantages of a distributed object architecture implementation.
Explain the Advantages of such a Java Solution compared to alternative solution
compared to alternative solution technologies such as C++.
What Does an Architect Do?
System Architecture in Perspective
Why Is an Architecture Needed?
Architecture Notation
Basic Three-Tier Architecture
Tier-to-Tier Communication
Distributed Object Communication
Advantages of Distributed Object Architectures
Distributed Object Frameworks
Object Languages
Basic Three-Tier Java Technology Architecture
Advantages of Three-Tier Architectures
Comparison of Three-Tier Communication Mechanisms
Overall Java Technology Architecture
Java Technology Architecture Issues

Introduction to the Architect Process using Java technology.

What is Software Architecture?

Architeture is an overall structure of a system. Architecture take into consideration the the overall working of the system. The architecture can  consist of sub system which interface with other subsystem to provide the system. Architecture take into consideration the scalability, security, portability of the system. Architecture normally do not consider in implementation detail. Implementation do follow the architecture.

Software architecture is the high-level structure of a software system. Important properties include:

  • It is at a high-enough level of abstraction that the system can be viewed as a whole.
  • The structure must support the functionality required of the system. Thus, the dynamic behavior of the system must be taken into account when designing the architecture.
  • The structure--or architecture--must conform to the system qualities (also known as non-functional requirements). These likely include performance, security and reliability requirements associated with current functionality, as well as flexibility or extensibility requirements associated with accommodating future functionality at a reasonable cost of change.
  • These requirements may conflict, and tradeoffs among alternatives are an essential part of designing an architecture. At the architectural level, all implementation details are hidden.
Where do the architecting process fit in the analysis design and development

The steps in the software development are

        Requirement analysis ( problem statement)
        Object oriented analysis
        Architectural design
        Object oriented design
        Architectural design  (revisted)
        Object creation

Requirement analysis

This phase involves the domain specification of the software in need.

Example of a out come of this phase
A simple bookstore example as to be accessible from the web. The users would like to retrieve information regarding the books available in the company. Should be able to purchase books online using credit card transaction

Object oriented analysis

This phase involves the analysis of the domain. The requirement analysis sets the boundary for this phase.

Example of a out come of this phase
Develop the use case diagrams for all the business process
Develop the sequence diagrams.
Develop the class diagrams
Develop the collaboration diagrams.

Architectural design

This phase involves the architectural design for the software. The development of the architecture is based on the output of the Object oriented analysis. This phase tries to give a framework with in which all the components will work to satisfy all the customer requirements. This phase lays the outline of the system. Implementation details are not Documented at this phase.

An example of this phase would be

Decide and document the architecture
What framework will be used
J2EE / CORBA/ RMI / DCOM
Define any new hardware, software requirements.
Define how security will be handled
Define how performance is achieved
Define any bottlenecks
How to work out a practical solution with

  • Security
  • Performance
  • Cost
  • Reusing existing technology and business logic in the legacy system.
  • Programmers
Develop package dependency diagrams..
How the classes in different package interact
Develop deployment diagrams
Where the software components will reside in deployment.
 

Object oriented design

In this phase the implementation design is done. Client tier whether it is an applet or HTML is decided. All the classes with hierarchy is defined. Design patterns if any are used. Object reuse is considered.

Architectural design ( revisited )

Any architectural considerations arising due to the detailed implementational design is discussed.

Example:
If the client uses HTML then the server side servlet can be communicated via HTTP without any modification in the existing systems.
If the client uses applet instead of HTML then consider HTTP tunneling on the server side is to be considered.

Object creation

The objects and code are implented.
 
 
 
 

Architecture Notation

UML, Unified Modeling Language by OMG , Object Management Group is the Architecture Notation.
 

Class diagram

A rectangle with three divisions for class name, attributes and methods
 
 
 

Sequence diagram
 
 

Basic Three-Tier Architecture

Three-Tier Architecture has three layers User Interface layer, business logic layer and the persistence layer.
The three tier software architecture emerged in the 1990s to overcome the limitations of the two tier architecture The third tier (middle tier server) is between the user interface (client) and the data management (server) components. This middle tier provides process management where business logic and rules are executed and can accommodate hundreds of users (as compared to only 100 users with the two tier architecture) by providing functions such as queuing, application execution, and database staging. The three tier architecture is used when an effective distributed client/server design is needed that provides (when compared to the two tier) increased performance , flexibility, maintainability, reusability, and scalability, while hiding the complexity of distributed processing from the user.
 
 

-Tier Architecture
The 3-tier architecture overcomes the weaknesses of the 2-tier and client/server architectures. It contains a client workstation, a component server, and a database server. The user interface is on the client side while business logic and data management are in dedicated tiers. Business logic resides on one machine where it can be easily managed.Successful implementation of a 3-tier architecture requires considerable applied experience.
 

n-Tier Architecture
The n-tier architecture is the same as the 3-tier architecture, but it has multiple (n) component and data management servers. It can distribute components across multiple servers and can access data in multiple databases. However, it requires careful planning of component interfaces to enable re-use and sharing.
 

Tier-to-Tier Communication
 
Communication between the user interface and business tiers can be achieved by
  • HTTP
  • RMI
  • Corba
  • Dcom
Communication between the business and persistence tier can be achieved by Jdbc

IDL to Com bridge // check

HTTP

HTML forms based client interacts with the servlet on the server. Server interacts with the business layer and business layer interacts with the persistence layer.

RMI

This is a possible if the objects in the user interface and the business layers are all Java objects. The persistence layer is mostly accessed through JDBC. Other relational object mapping of the data layer is also possible.

Advantage of RMI
            Object are passed by value. The server/ client can reconstitute the objects easily.
            Data type can be any Java objects. Any Java objects can be passed as arguments.
            Arguments has to implement the serializable interface

Disadvantage of RMI
           Heterogeneous objects are not supported.

Corba
If the objects in the client layer and the business layer are heterogeneous, i.e. the objects are implemented in C, C++ Java, Smalltalk then Corba is most suitable.

Advantage of Corba
        Heterogeneous objects are supported.

Disadvantage of Corba
    Objects are not passed by value, only the argument data is passed.
    The server/ client has to reconstitute the objects with the data.
    Only commonly accepted data types can be passed as arguments.

Dcom
    This works best in windows environment.

Distributed Object Communication
 
  Advantages Disadvantages
HTTP Simple, 

Established 

Has to communicate to a Servlet, Java Server pages

Cannot communicate to a Java class directly

RMI Object are passed by value. 

The server/ client can reconstitute the objects easily.

Object are passed by reference

Data type can be any Java objects. 

Any Java objects can be passed as arguments.

Arguments has to implement the 

Serializable interface

Heterogeneous objects are not supported.
Corba Heterogeneous objects are supported. Objects are not passed by value, only the argument data is passed.

The server/ client has to reconstitute the objects with the data.

Only commonly accepted data types can be passed as arguments

Dcom If windows is the deployment platform
suits well with the operating system
This works in windows environment  at best

Distributed Object Frameworks

Distributed Object Frameworks are RMI, Corba, Dcom, EJB.
 
 

Basic Three-Tier Java Technology Architecture

The three-Tier Java Technology Architectureis achieved by HTML, Applet, Java Application on the client. Servlet, Java Server Pages on the Middle Tier. JDBC communication to the persistence or Database layer

RMI

// Explain later
 
 

Java IDL

// Explain later
 
Client C to M comm. Middle M to P comm. Persistence
HTML 

HTML with applet

HTTP Servlet

Java Server Pages

JDBC RDBMS
Legacy
File
Java Application JRMP RMI Server JDBC RDBMS
Legacy
File
Java Application RMI- II0P EJB JDBC RDBMS
Legacy
File
Java Application

( Not a Java 3 tier)

IIOP Corba  JDBC RDBMS
Legacy
File
         

 
 

Comparison of Three-Tier Communication Mechanisms
 
       
       
       
       

 
 
 

Review questions

  • Where do the architectural design fit into the design phase
             In between the analysis and design phase
  • What are the phases in ooad
              Requirement analysis, oo Analysis, Architectural design, oo design,Object creation.
  • What is the requirement of a Java architect
To analyze all possible solutions including non java solution
To satisfy the customer

Contents | Previous  | Next   | Home

Last Modified on : 3/19/1000 by PRR
Contact prasks with questions or suggestion.
All rights reserved. Terms of use.
All products and companies mentioned at this site are trademarks of their respective owners.