Tuesday, September 11, 2007
Section 1: Application Design Concepts and Principles
* 1.1 Explain the main advantages of an object oriented approach to system design including the effect of encapsulation, inheritance, delegation, and the use of interfaces, on architectural characteristics.
* 1.2 Describe how the principle of "separation of concerns" has been applied to the main system tiers of a Java EE application. Tiers include client (both GUI and web), web (web container), business (EJB container), integration, and resource tiers.
* 1.3 Describe how the principle of "separation of concerns" has been applied to the layers of a Java EE application. Layers include application, virtual platform (component APIs), application infrastructure (containers), enterprise services (operating system and virtualization), compute and storage, and the networking infrastructure layers.
Section 2:Common Architectures
* 2.1 Explain the advantages and disadvantages of two tier architectures when examined under the following topics: scalability, maintainability, reliability, availability, extensibility, performance, manageability, and security.
* 2.2 Explain the advantages and disadvantages of three tier architectures when examined under the following topics: scalability, maintainability, reliability, availability, extensibility, performance, manageability, and security.
* 2.3 Explain the advantages and disadvantages of multi-tier architectures when examined under the following topics: scalability, maintainability, reliability, availability, extensibility, performance, manageability, and security.
* 2.4 Explain the benefits and drawbacks of rich clients and browser-based clients as deployed in a typical Java EE application.
* 2.5 Explain appropriate and inappropriate uses for Web Services in the Java EE Platform.
Section 3:Integration and Messaging
* 3.1 Explain possible approaches for communicating with an external system from a Java EE-based system given an outline description of those systems and outline the benefits and drawbacks of each approach.
* 3.2 Explain typical uses of Web Services and XML over HTTP as mechanisms to integrate distinct software components.
* 3.3 Explain how Java Connector Architecture and JMS are used to integrate distinct software components as part of an overall Java EE application.
Section 4: Business Tier Technologies
* 4.1 Explain and contrast uses for Entity Beans, Entity Classes, Stateful and Stateless Session Beans, and Message Driven Beans and understand the advantages and disadvantages of each type.
* 4.2 Explain and contrast the following persistence strategies: Container Managed Persistence (CMP) BMP, JDO, JPA, ORM and using DAOs (Data Access Objects) and direct JDBC-based persistence under the following headings: ease of development, performance, scalability, extensibility and security.
* 4.3 Explain how Java EE supports the deployment of server-side components implemented as Web Services and the advantages and disadvantages of adopting such an approach.
* 4.4 Explain the benefits of the EJB3 development model over previous EJB generations for ease of development including how the EJB container simplifies EJB development.
Section 5: Web Tier Technologies
* 5.1 State the benefits and drawbacks of adopting a web framework in designing a Java EE application.
* 5.2 Explain standard uses for JSP and Servlet technologies in a typical Java EE application.
* 5.3 Explain standard uses for JSF technology in a typical Java EE application.
* 5.4 Given a system requirements definition, explain and justify your rationale for choosing a web-centric or EJB-centric implementation to solve the requirements. Web-centric means that you are providing a solution that does not use EJBs. EJB-centric solution will require an application server that supports EJBs.
Section 6: Applicability of Java EE Technology
* 6.1 Given a specified business problem, design a modular solution implemented using Java EE which solves that business problem.
* 6.2 Explain how the Java EE platform enables service oriented architecture (SOA) -based applications.
* 6.3 Explain how you would design a Java EE application to repeatedly measure critical non-functional requirements and outline a standard process with specific strategies to refactor that application to improve on the results of the measurements.
Section 7: Patterns
* 7.1 From a list, select the most appropriate pattern for a given scenario. Patterns are limited to those documented in the book - Alur, Crupi and Malks (2003). Core J2EE Patterns: Best Practices and Design Strategies 2nd Edition and named using the names given in that book.
* 7.2 From a list, select the most appropriate pattern for a given scenario. Patterns are limited to those documented in the book - Gamma, Erich; Richard Helm, Ralph Johnson, and John Vlissides (1995). Design Patterns: Elements of Reusable Object-Oriented Software and are named using the names given in that book.
* 7.3 Select from a list the benefits and drawbacks of a pattern drawn from the book - Gamma, Erich; Richard Helm, Ralph Johnson, and John Vlissides (1995). Design Patterns: Elements of Reusable Object-Oriented Software.
* 7.4 Select from a list the benefits and drawbacks of a specified Core J2EE pattern drawn from the book - Alur, Crupi and Malks (2003). Core J2EE Patterns: Best Practices and Design Strategies 2nd Edition.
Section 8: Security
* 8.1 Explain the client-side security model for the Java SE environment, including the Web Start and applet deployment modes.
* 8.2 Given an architectural system specification, select appropriate locations for implementation of specified security features, and select suitable technologies for implementation of those features.
* 8.3 Identify and classify potential threats to a system and describe how a given architecture will address the threats.
* 8.4 Describe the commonly used declarative and programmatic methods used to secure applications built on the Java EE platform, for example use of deployment descriptors and JAAS.
Sun recommended study resources.
» UML Distilled - by Martin Fowler
» Java Design (Objects, UML, and Process) - by Kirk Knoernschild
* Addison-Wesley (2002)
* ISBN 0-201-75044-9
» SOA Using Java Web Services (Paperback) - by Mark D. Hansen
» Developing Java Web Services: Architecting and Developing Secure Web Services Using Java - by Ramesh Nagappan, Robert Skoczylas, Rima Patel Sriganesh
» Enterprise Java Beans - by Richard Monson-Haefel
» Java Enterprise in a Nutshell - by David Flanagan, Jim Farley, William Crawford, Kris Magnusson
» EJB v3.0 spec
» EJB v2.1 spec
» Core Servlets and JavaServer Pages, Vol. 1 (2nd Edition) - by Marty Hall, Larry Brown
* Prentice Hall PTR; 2 edition (August 29, 2003)
* ISBN-13: 978-0130092298
» Core Servlets and JavaServer Pages, Vol. 2 (2nd Edition) - by Marty Hall, Larry Brown, and Yaakov Chaikin
* Prentice Hall PTR; 2 edition (December 1, 2007)
* ISBN-13: 978-0131482609
» Core JavaServer Faces (2nd Edition) - by David Geary, Cay S. Horstmann
* Prentice Hall PTR; 2 edition (May 9, 2007)
* SBN-13: 978-0131738867
» Servlet v2.5 spec
» JSP v1.2 spec
» JSF v1.1 spec
» Designing Enterprise Applications with the Java 2 Platform, Enterprise Edition - by Nicholas Kassem, Enterprise Team
* List Price: $37.95, Paperback - 368 pages 1 edition (June 2, 2000)
* Addison-Wesley Pub Co
* ISBN: 0201702770
» Java 2 Platform, Enterprise Edition: Platform and Component Specifications - by Bill Shannon, Mark Hapner, Vlada Matena, Eduardo Pelegri-Llopart, Larry Cable, James Davidson
* List Price: $44.95, Paperback - 800 pages 1 edition (May 26, 2000)
* Addison-Wesley Pub Co
* ISBN: 0201704560
» Enterprise Blueprints: http://java.sun.com/blueprints/enterprise/
» Java EE 5 Performance Management and Optimization (Pro) - by Steven Haines
» Design Patterns and Contracts - by Jean-Marc Jezequel, by Michel Train and Christine mingins
» Design Patterns - by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Grady Booch
» Core J2EE Patterns: http://java.sun.com/blueprints/corej2eepatterns/, http://www.corej2eepatterns.com/
» Core J2EE Patterns: Best Practices and Design Strategies (2nd Edition) - Deepak Alur, John Crupi and Dan Malks
* Publisher: Prentice Hall / Sun Microsystems Press
* ISBN:0131422464; 2nd Edition (June, 2003)
» J2EE Blueprints
» Java 2 Network Security, by Marco Pistoia, Duane F. Reller, Deepak Gupta, Milind Nagnur, Ashok K. Ramani
» Core Security Patterns: Best Practices and Strategies for J2EE, Web Services, and Identity Management
Friday, August 31, 2007
Then comes around a email about GM Diet, supposedly designed by GM... promises to have worked wonders on people in 7 days with nothing to buy, subscribe or join.
So what am i waiting for.... It non-vegetarian. Ok so am now going to replace stuff with vegie instead of beef and see if it works.
So here is the deal...
All fruits except bananas. Your first day will consist of all the fruits you want. It is strongly suggested that you consume lots of melons the first day. Especially watermelon and a loupe. Suggest weight loss - 3 pounds!!!
All vegetables. Encouraged to eat until you are stuffed with all the raw or cooked vegetables of your choice. There is no limit on the amount or type. For your complex carbohydrate, you will start day two with a large baked potato for breakfast. You may top the potato with one pat of butter.
Suggest weight loss - 1-2 pounds!!!
A mixture of fruits and vegetables of your choice. Any amount, any quantity. No bananas yet. No potatoes today.
Suggest weight loss - 1-2 pounds!!!
Bananas and milk. Today you will eat as many as eight bananas and drink three glasses of milk. This will be combined with the special soup which may be eaten in limited quantities.
Suggest weight loss - Stop looking, may gain weight if not followed stricly!!! Toughest day today, if you get past day 4, then its a cruise!!!
Today is feast day. You will eat beef(Need to find a vegetarian substitute) and tomatoes. Eat two 10 oz. portions of lean beef. Hamburger is OK. Combine this with six whole tomatoes. On day five you must increase your water intake by one quart. This is to cleanse your system of the uric acid you will be producing.
Beef(ok...here too, or should i try Beef) and vegetables. Today you may eat an unlimited amount of beef and vegetables. Eat to your hearts content.
Today your food intake will consist of brown rice, fruit juices and all the vegetables you care to consume.
Ok.... so now for the resutls at the end of the week?
Note: this diet plan is a copy/paste from internet and emails. So at your own judgement please...
Sunday, July 29, 2007
This is a new tool/product am currently working on. This is a nice desktop integration application. I happen to like the features/ease by which it can intrograte data from applications and seamlessly integrate multiple applications. This is like greasemonkey for enterprise to script large and small applications together.
1. Application integration
2. Create composite desktop, or virtual applications.
3. Easy to use and learn. Is completely visual drag/drop development. Definitely fun!!
4. Easy to deploy.
I have got a list. Checking to see if it can't be done or am missing it :)
Mytake: Definetly a nice tool to have, and consider when designing/developing new systems. With the simplicity that OpenSpan provides, Enterprise can definelty 'mashup' new workflows or virtually integrated application in no time. But I dont see these or recommend this being a long term solution. Am not sure if its feasible to be designed as a long term solution without becoming a maintaince nightmare!! I will take time to review this product in more indepth sooon...
Thursday, March 29, 2007
This year I started with JamesBond 007 - Everything or Nothing This has been out for couple years i guess, picked it up free from blockbuster with there online coupon. Anyway, I didnt expect but the game is just fantastic. The graphics great and the theme song excellant and has a continuity like a movie...its a bit on the easy side compared to the newer games though!!!
Found a very nice video on tube, see here part1 search for more...
Monday, March 19, 2007
42 of 48 Correct. Exam taken in Feb 07.
- Concepts : 83%
- Common Architecture : 66%
- Legacy Connectivity : 80%
- Internationalization : 50%
- Security : 50%
- EJB : 100%
- EJB Container Model : 100%
- Protocols : 100%
- Applicability of J2EE : 100%
- Design Patterns : 100%
- Messaging : 100%
Thursday, January 18, 2007
- From a list, select the most appropriate design pattern for a given scenario. Patterns will be limited to those documented in Gamma et al. and named using the names given in that book.
- State the benefits of using design patterns.
- State the name of a design pattern (for example, Gamma) given the UML diagram and/or a brief description of the pattern's functionality.
- Select from a list benefits of a specified design pattern (for example, Gamma).
- Identify the design pattern associated with a specified J2EE feature
Benefits: Proven solutions, promote reusability, Expressive.
GOF patterns Creation
- Abstract Factory - Allows a client to create families of objects without knowing their concrete classes.
- Factory Method - Subclasses decide which concrete classess to create.
- Singleton - Ensures one and only object is created.
- Chain of Responsiblity
- Command - Encapsulates a request as an object.
- Observer - Allows objects to be notified when state changes.
- State - Encapsulate state based behaviour and use delegation to switch between behaviour.
- Strategy - Encapsulates interchangeable behaviour and used delegation to decide which ones to use.
- Template Method - Subclasses decide how to implement steps in an algorithm.
- Adapter - Wraps an object and provides an interface to it.
- Composite - Client treats collection of objects and individual objects uniformly.
- Decorator - Wraps an object to provide new behaviour.
- Proxy - Wraps an object to control access to it.
|EJB Home|| |
|EJB Remote|| |
|Session beans that model workflow|| |
|EJB instance pooling|| |
|Value object|| |
|JDBC Resultset|| |
|JDBC, JMS, JCA, or any bridging technology|| |
|Servlet filters|| |
Need to know all patterns, able to differential between the similiar and identify them from givem UML diagrams.
Books used HeadFirstPatterns/ Developer works/ MarkCade's SCEA.
Tuesday, January 16, 2007
- Select from a list security restrictions that Java 2 environments normally impose on applets running in a browser.
- Given an architectural system specification, identify appropriate locations for implementation of specified security features, and select suitable technologies for implementation of those features.
Security Manager: categories of permission.
- Ability to create a thread
- Limited ability to manipulate threads that the browser created for applet Security manager doesnt monitor CPU/Network or bandwidth utilization.
- Ability to perform manipulations for the AWT for GUI to work properly
- Ability to read system properties, but not modify them
- Allowed to make network connection only to host from which it was loaded(if not it could start Dos and also try to connect to internal resouces/systems of the local network)
- Cannot change the prioirty of the threads but can request more memory and throw OutOfmemoryException.
- Message digest is proof that a piece of data has not been modified. The process of creating message digest is know as hashing. Java 2 suports this.
- If applet is not trusted then it cannot do anything on the client machine.
- Cannot read/write from client
- Cannot read java.home or java.classpath.
Denied Operations Any operation that might be used to compromise the host is usually denied.
Exceptions to this are CPU Usages, Bandwith usagea and memory usage.
Principal, Roles, Identification, Authorization, Authentication, Access control.
Cryptography 1) Symmetric 2) Asymmetric - Has 2 keys private and a public key. Public key can be used to encrypt the message. It cannot be used to decrypt the message or derive the private key. Only the private key can be used to decrypt the message. Asymmetric cryptography is CPU intensive. Also know as public key crytography.
Signatures and Certificates.
SSL, HTTPS, WEB logins
Notes from cade/web/Simulators
- Identify scenarios that are appropriate to implementation using messaging, EJB, or both.
- List benefits of synchronous and asynchronous messaging.
- Select scenarios from a list that are appropriate to implementation using synchronous and asynchronous messaging.
- Peer to peer facility
- Message agents provide facilities for creating,sending,reading and receiving messages.
- Enables distributed comm that is loosely coupled
- Messaging is used for comm between software applications or components.
- Minimizes the set of concepts a prgmer must learn to use messaging products.
- Provides enough featurs to support sophisticated messaging apps.
- Maximises the portability of JMS apps across provider.
- Enables comm which is loosely coupled, asynchrounous and reliable.
- Point to point
- Build around the concept of message queues/senders and receivers.
- Sender/Receiver of a message has no timing dependency.
- Receiver acknowledge the successful processing of a message.
- Publish & Subscribe
- Each message can have multiple consumers.
- Pub/Sub have a timing dependency. A client that subscribes to a topic can consume only messages that have been published after the subscription and must continue to be active to receive messages.
Use pub/sub messaging when each message is consumed by 0,1 or *consumers.
- A JMS provider may implement one or both domains.
- A J2EE provider must implement both domains.
J2EE 1.2 Service provider was required to provide the JMS API interface and not the implementation.
J2EE 1.3 MOM is the integral part of the platform and developers can use the messaging features with other APIs.
JMS Provider is the system that implements the JMS interface and provides admin constrol or features
JMS Client are prgms written in java that produce or consume messages.
Messages Are objects that communicate information between clients
Administered Objects are preconfigured objs created by the admin for the use of clients
- Destination objects
- Connection factories
Notes from sun/cades scea/web
SCEA Notes: Common Architecture
- Recognize the effect on each of the following characteristics of two tier, three tier and multi-tier architectures: scalability maintainability, reliability, availability, extensibility, performance, manageability, and security.
- Recognize the effect of each of the following characteristics on J2EE technology: scalability maintainability, reliability, availability, extensibility, performance, manageability, and security.
- Given an architecture described in terms of network layout, list benefits and potential weaknesses associated with it.
The non-functional(service level requirements) of prime importance are :scalability maintainability, reliability, availability, extensibility, performance, manageability, and security.
Scalability is the ability to add more users as the transactional load increases, but the system still reponds within acceptable limits.
- Vertical Scaling- Adding capacity(memory,cpu,etc) to existing servers. This is easier of the two types.
- Horizontal scaling- This is achieved by adding servers to the system.
Reliability is the ability to ensure integrity and consistency 9f the application, and its transactions. Horizontal scalibility increases reliability and availability.
Extensiblity is the ability to modify/add without impacting the existing functionality. The main features of an extensible design is ODD with low coupling, interfaces and encapsulation.
Performance ways to increase performance: load distribution, load balancing, efficient programming, resource pooling.
Manageability is the ability to monitor system resources.
Architecutural tiers: Applications can be one tier, two tier or N tier.
In a N-tier arch, each tier is automous unit that can be developed and maintained
separately. J2EE based arch consists of .
Client tier/Web tier/Bussiness or application logic tier/Enterprise information system integration tier/Enterprise information system tier.
Notes from developerworks
Friday, January 12, 2007
Internationlization i18n in progress
- State 3 aspects as to why an application may need to be varied or customized in different deployment locales.
- Match the functionality, description or purpose of the following(7): Properties,Locale,ResourceBundle, Unicode, Java.text package ,InputStreamReader and OutputStreamReader.
Localization describes the process of configuring an internationalized(i18n) program to a particular region or culture.
Whats to be internationalized.
- Languages used for messages.
- Parameter substitution order in message.
- Languages used in parameter in messages.
- Numeric/Currency/Date formats.
These notes are from SCEA guide by Mark Cade. My review of this book.
Thursday, January 11, 2007
SCEA Notes: UML
- Draw UML Diagrams
- Interpret UML diagrams.
- State the effect of encapsulation, inheritance, and use of interfaces on architectural characteristics.
UML 2 has two categories of diagrams:
1) Structure diagrams: Shows the static structure of the system being modeled. Example: Class, Component or object diagram.
2) Behavior diagrams: Shows the dynamic behavior between the objects of the systems, like there methods, collaboration and activities. Example activity, Use case and sequence diagrams.
Classifier: In general a classifier is a class but technically a classifier is a more general term that refers to a class, an interface, a data type and a component.
The UML representation of a class is a rectangle containing 3 compartments stacked vertically.
The attribute section has name: attribute type. The uml specification allows for default values in the attribute list. Ex balance: Dollars = 0.
The operations are documented as name(parameter list): return type Ex getArrivalTime():Date
The ability of one class to inherit the functionality of another class and then add new functionality of its own. This is denoted by a solid line with a closed, unfilled arrowhead pointing to the super class.
Five type of Association:
1) Uni-directional: This is indicated with a solid line arrow à. This case only one class knows about the other. Only one end has the assigned name and multiplicity value.
2) Bi-directional: This is indicated with a solid line connecting both classes with an assigned name and the multiplicity values at both ends.
3) Association class.
4) Aggregation: An associate with an aggregation relationship indicates that one class is part of another. They may be able to live dependently or not.
a. Basic Aggregation: This type the child class can outlive parent class, like the wheels can exist without a car.
b. Composite Aggregation. This is similar to the above diagram except that the diamond is filled. In this case the child class cannot live without the parent class. Ex classrooms cannot exist without school.
5) Reflexive Association. This is an association with the same class.
Packages are for organizing classes or classifier into a namespace. This is sort of folder like structure for the model. This is represented as a rectangle with a tab at the top-left. The classes included can be should inside a package or with a small circle with solid lines to each class.
Interface: This is considered to be a specialization of the class modeling element. It is represented exactly as a class with the top compartment having an additional text like this <
A dotted line with an unfilled arrowhead means realization or implementation.
A solid line with a filled arrowhead means inheritance.
Added in UML 2
The above notes are from developerworks
Tuesday, January 9, 2007
Tuesday, January 2, 2007