This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Here's my breakdown: Concepts: 83 Common Architectures: 50 (whew, blew that one) Legacy Connectivity: 100 EJB: 100 EJB Container Model: 100 Protocols: 66 Applicability: 66 Design Patterns: 100 Messaging: 100 Internationalization: 100 Secturity: 100 Read the usual - Monson-Haefel, Ed Roman, Mark Cade, plus take a look at my list of links. Have about 6 months experience with EJB development. Also might note that I've got SCJP and SCJD certs. My Links: HREF="http://ibelgique.ifrance.com/sweber/SCEA/Notes/Test%20Sridhar%20Raman.html" ADD_DATE="1026832654" LAST_VISIT="1031889600" LAST_MODIFIED="1031078736">sweber</A> <DT><A HREF="http://www.ianswebpage.com/cert/" ADD_DATE="1026832666" LAST_VISIT="1031889600" LAST_MODIFIED="1026832780">Java Certification</A> <DT><A HREF="http://www.x-nt.org/j2ee.html" ADD_DATE="1026939192" LAST_VISIT="1031889600" LAST_MODIFIED="1026939194">x-nt.com</A> <DT><A HREF="http://www.geocities.com/rah_73_1999/scjea.html" ADD_DATE="1027083050" LAST_VISIT="1031889600" LAST_MODIFIED="1027083052">Java Architect Resources</A> <DT><A HREF="http://ibelgique.ifrance.com/sweber/SCEA/Java/certification_archj2ee_07_01.pdf" ADD_DATE="1031074424" LAST_VISIT="1031889600" LAST_MODIFIED="1031074428">http--ibelgique.ifrance.com-sweber-SCEA-Java-certification_archj2ee_07_01.pdf</A> <DT><A HREF="http://whatis.techtarget.com/" ADD_DATE="1031078486" LAST_VISIT="1031889600" LAST_MODIFIED="1031078488">whatis.com</A> <DT><A HREF="http://www.patterndepot.com/put/8/JavaPatterns.htm" ADD_DATE="1031078614" LAST_VISIT="1031889600" LAST_MODIFIED="1031078616">The Design Patterns Java Companion</A> <DT><A HREF="file:///C:/WINNT/Profiles/lzl324/Temporary%20Internet%20Files/Content.IE5/6P4N0R2T/278,21,Part 1 Resources: Security" ADD_DATE="1031079628" LAST_VISIT="1031889600" LAST_MODIFIED="1031079630">PowerPointSCEA Presentation</A> <DT><A HREF="http://www.javacoding.net./index.php?category=403#contentAnchor" ADD_DATE="1031153345" LAST_VISIT="1031889600" LAST_MODIFIED="1031153348">JavaCoding.net - Home��Certification��SCJP and SCJA-SCEA Mock Exams</A> <DT><A HREF="http://www.togethersoft.com/services/practical_guides/umlonlinecourse/#classdiagrams" ADD_DATE="1031161262" LAST_VISIT="1031889600" LAST_MODIFIED="1031161264">Practical UML</A> <DT><A HREF="http://suned.sun.com/US/images/certification_archj2ee_07_01.pdf" ADD_DATE="1031162098" LAST_VISIT="1031889600" LAST_MODIFIED="1031162100">http--suned.sun.com-US-images-certification_archj2ee_07_01.pdf</A> <DT><A HREF="http://ibelgique.ifrance.com/sweber/SCEA/Notes/Test%20Sridhar%20Raman.html" ADD_DATE="1031078847" LAST_VISIT="1031889600" LAST_MODIFIED="1031078848">Raman's Test</A> <DT><A HREF="http://ibelgique.ifrance.com/sweber/" ADD_DATE="1031078769" LAST_VISIT="1031889600" LAST_MODIFIED="1031078770">S Weber Resources</A> <DT><A HREF="http://www.books24x7.com/book/id_1926/toc.asp?bookid=1926" ADD_DATE="1031319243" LAST_VISIT="1031889600" LAST_MODIFIED="1031319244">Java 2 Training certification Guide - Java Architect</A> <DT><A HREF="http://www.3com.com/other/pdfs/infra/corpinfo/en_US/50309001.pdf" ADD_DATE="1031582727" LAST_VISIT="1031889600" LAST_MODIFIED="1031582730">What is a Firewall...</A> <DT><A HREF="http://my.execpc.com/~gopalan/java/java_tutorial.html" ADD_DATE="1031586926" LAST_VISIT="1031889600" LAST_MODIFIED="1031586928">The Advanced Java-J2EE Tutorial by Gopalan Suresh Raj</A> <DT><A HREF="http://www.stormpages.com/jnagal/index.html" ADD_DATE="1031591036" LAST_VISIT="1031889600" LAST_MODIFIED="1031591042">Amit Jnagal's SCEA Resources</A> <DT><A HREF="http://www.certificationguru.com/javaarchitectresources.html" ADD_DATE="1031591446" LAST_VISIT="1031889600" LAST_MODIFIED="1031591448">CertificationGuru - Java Architect Certification Educational Resources</A> <DT><A HREF="http://www.certificationguru.com/javatutorial/j2eeTransactions.html" ADD_DATE="1031592662" LAST_VISIT="1031889600" LAST_MODIFIED="1031592664">Transaction</A> <DT><A HREF="http://www.yrrid.com/lof/lof.htm" ADD_DATE="1031601654" LAST_VISIT="1031889600" LAST_MODIFIED="1031601656">Legacy Objects Framework</A> <DT><A HREF="http://searchsecurity.techtarget.com/whitepaperPage/0,293857,sid14_gci849073,00.html" ADD_DATE="1031758791" LAST_VISIT="1031889600" LAST_MODIFIED="1031758794">searchSecurity.com White Papers RADVISION Firewall Cookbook</A> <DT><A HREF="http://www.michael-thomas.com/architect/index.htm" ADD_DATE="1031758975" LAST_VISIT="1031889600" LAST_MODIFIED="1031758978">Architect - (index.htm)</A> <DT><A HREF="http://www.books24x7.com/book/id_2097/toc.asp" ADD_DATE="1031759062" LAST_VISIT="1031889600" LAST_MODIFIED="1031759064">Books24x7.com - Referenceware for Professionals</A> <DT><A HREF="http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/book.pdf" ADD_DATE="1031770437" LAST_VISIT="1031889600" LAST_MODIFIED="1031770440">Book - blueprints-guidelines-designing_enterprise_applications</A> <DT><A HREF="http://www.whizlabs.com/scea/try.html" ADD_DATE="1031839039" LAST_VISIT="1031889600" LAST_MODIFIED="1031839042">Try SCEA@Whiz - Sun Java Architect Certification Mock Exam</A> <DT><A HREF="http://my.execpc.com/~gopalan/" ADD_DATE="1031839216" LAST_VISIT="1031889600" LAST_MODIFIED="1031839218">A Component Engineering Cornucopia by Gopalan Suresh Raj</A> NOTES: Notes on SCEA: 1. Enterprise Java Beans The test focuses on the 1.1 EJB spec - NOT 2.0!! 1. List the required classes/interfaces that must be provided for an Enterprise Java Beans component. a. A bean class that extends either Javax.ejb.Session or javax.ejb.Entity interfaces (note that the 1.1 spec specifies these interfaces as non-abstract). b. Home interface should extend javax.ejb.EJBHome. Allows user to create, locate, or destroy entity beans. This is an implementation of the factory pattern. c. Remote interface should extend javax.ejb.EJBObject. Has the business methods to be called on the bean. Implementation of the proxy pattern. d. Other Stuff: i. the home interface of a stateless Session bean must contain one and only one create method with no arguments. ii. The session bean (EJBObject) must implement one ejbCreate method. iii. The EJB architecture supports flat transactions-nested transactions are not supported. iv. An enterprise bean with container-managed transaction demarcation can use the setRollback-Only() method of its EJBContext object to mark the transaction such that the transaction can never commit. Typically, an enterprise bean marks a transaction for rollback to protect data integrity before throwing an application exception, because application exceptions DO NOT automatically cause the Container to rollback the transaction. v. Only Stateful session beans may implement javax.ejb.SessionSynchronization. vi. There is an ejbRemove method in the EJBObject interface. Without a handle, Only ENTITY BEANS can be removed from the home interface, since this method takes a primary key as a parameter. vii. An enterprise Bean must not use read/write static fields. Using read-only static fields is allowed. Therefore, it is recommended that all static fields in the enterprise bean class be declared as final. This rule is required to ensure consistent runtime semantics because while some EJB Containers may use a single JVM to execute all enterprise bean's instances, others may distribute the instances across multiple JVMs. viii. An enterprise Bean must not use thread synchronization primitives to synchronize execution of multiple instances. Same reason as above. Synchronization would not work if the EJB Container distributed enterprise bean's instances across multiple JVMs. ix. An enterprise Bean must not use the AWT functionality to attempt to output information to a display, or to input information from a keyboard. 2. Enterprise Java Beans Container Model The Items contained in the ejb-jar.xml file: • Enterprise bean's name. The Bean Provider must assign a logical name to each enterprise bean in the ejb-jar file. There is no architected relationship between this name, and the JNDIAPI name that the Deployer will assign to the enterprise bean. The Bean Provider specifies the enterprise bean's name in the ejb-name element. • Enterprise bean's class. The Bean Provider must specify the fully-qualified name of the Java class that implements the enterprise bean's business methods. The Bean Provider specifies the enterprise bean's class name in the ejb-class element. • Enterprise bean's home interfaces. The Bean Provider must specify the fully-qualified name of the enterprise bean's home interface in the home element. • Enterprise bean's remote interfaces. The Bean Provider must specify the fully-qualified name of the enterprise bean's remote interface in the remote element. • Enterprise bean's type. The enterprise beans types are session and entity. The Bean Provider must use the appropriate session or entity element to declare the enterprise bean's struc-tural information. • Re-entrancy indication. The Bean Provider must specify whether an entity bean is re-entrant or not. Session beans are never re-entrant. • Session bean's state management type. If the enterprise bean is a Session bean, the Bean Provider must use the session-type element to declare whether the session bean is stateful or stateless. • Session bean's transaction demarcation type. If the enterprise bean is a Session bean, the Bean Provider must use the transaction-type element to declare whether transaction demarcation is performed by the enterprise bean or by the Container. • Entity bean's persistence management. If the enterprise bean is an Entity bean, the Bean Provider must use the persistence-type element to declare whether persistence manage-ment is performed by the enterprise bean or by the Container. • Entity bean's primary key class. If the enterprise bean is an Entity bean, the Bean Provider specifies the fully-qualified name of the Entity bean's primary key class in the prim-key-class element. The Bean Provider must specify the primary key class for anEntity with bean-managed persistence, and may (but is not required to) specify the primary key class for an Entity with container-managed persistence. • Container-managed fields. If the enterprise bean is an Entity bean with container-managed persistence, the Bean Provider must specify the container-managed fields using the cmp-fields elements. • Environment entries. The Bean Provider must declare all the enterprise bean's environment entries as specified in Subsection 14.2.1. • Resource manager connection factory references.The Bean Provider must declare all the enterprise bean's resource manager connection factory references as specified in Subsection 14.4.1. • EJB references. The Bean Provider must declare all the enterprise bean's references to the homes of other enterprise beans as specified in Subsection 14.3.1. • Security role references. The Bean Provider must declare all the enterprise bean's references to security roles as specified in Subsection 126.96.36.199. Transactions 1) Transactions are a unit-of-work. Transactions are a set of activities that must all work, or the transaction fails. Characteristics are remembered by the acronym ACID: a) Atomic: the whole transactions succeeds or fails as a whole. b) Consistent: the transaction must move from one known state to the next cleanly and unambiguously. c) Isolated: the transaction must execute without interference or contamination from other sources. May run concurrently with other transactions. d) Durable: after completion, the transaction's data must be written out to durable storage correctly. J2EE containers DO NOT support nested transactions. Transaction Management * Declarative Transaction Management (or Demarcation) EJB allows for Declarative Transaction Management. Using Declarative Transaction Management, the transaction behavior of beans can be controlled using the deployment descriptor, which sets transaction attributes for individual bean methods. * Programmatic Transaction Management (or Demarcation) Developers are required to write transaction code within the business logic. Programmatic Transaction Management involves the use of API's like OTS (Object Transaction Service), JTS (Java Transaction service) and JTA (Java Transaction API). Transaction Attributes Transaction attributes are set in the deployment descriptor. It is possible to set a transaction attribute to the whole bean or to individual methods. A transaction attribute must be specified for the methods id the remote interface of a session bean and for the methods in the home and remote interfaces of an entity bean. Transactional behavior of the bean can be changed easily, just by changing the transactional attribute in the deployment descriptor. It is recommended that components always access an EIS under the scope of a transaction since this provides some guarantee on the integrity and consistency of the data. * Not Supported o Bean does not support transactions. If the client is associated with a transaction, it is suspended. If the bean method is invoking an ERP system and that particular resource manager is not supported, it is best to suspend the client transaction. That is when NotSupported attribute is set. * Supports o Bean supports transaction but is not required. If the client is associated with a transaction, bean takes part in the transaction. If the client is not associated with a transaction, bean does not start a transaction. Not used generally. * Required o Bean will always be part of a transaction. If the client is associated with a transaction, bean takes part in the transaction. If the client is not associated with a transaction, bean starts a transaction. Default choice, so that, bean method is always associated with a transaction. * Requires New o Bean will always start a new transaction. If the client is associated with a transaction or not, bean always starts a new transaction. Used when the bean method needs to commit the results unconditionally, like logging user information. Even if the client's transaction fails, logging is done. * Mandatory o The client must be associated with a transaction; otherwise, invocation will fail, throwing a TransactionRequiredException. * Never o The client must not be associated with a transaction; otherwise, invocation will fail, throwing a RemoteException Transactional Problems 1) Dirty Read * When the application reads data that has not been committed. 2) Unrepeatable Read * Application reads some data, but upon rereading the data, the 'existing' data has been changed. This happens because some other application has updated the data after the first read. 3) Phantom Reads * Phantom is a 'new' set of data that appears in a database between two reads. This happens because some other application has inserted the data after the first read. Isolation Levels The "I" in ACID. Performance suffers as isolation level increases. Each business setting for each transaction will determine the appropriate level. The four levels are: * READ UNCOMMITED: the lowest level of isolation. Can be used to improve performance if we know that there are no concurrent transactions. Will experience all of the transaction problems of Dirty Read, Unrepeatable Read, Phantom Read. * READ COMMITTED: can experience Unrepeatable Read and Phantom Read. Good for reporting tools; this is a snapshot of data. Default isolation level for an Enterprise Information System (EIS). * REPEATABLE READ: Locks all the rows read and thus solves the Unrepeatable Read problem. Good for apps that read and update data. * SERIALIZABLE: Highest isolation level, best for mission-critical system. Locks the whole table. Can be big performance hit. Programmatic Transaction Management
We use the javax.transaction.UserTransaction interface of the JTA for working with transactions.
In EJB 1.1, only session beans can be bean-managed transaction beans. In stateless session beans, the transaction must be started and completed in the same method.
Client application (Web component like JSP or Servlet) can obtain a UserTransaction using JNDI. Transaction should start and complete in the service method.
Context iCtx = new InitialContext(); UserTransaction uTran = (UserTranssaction) iCtx.lookup("java:comp/UserTransaction"); UTran.begin(); //Write code to do the unit-of-work Utran.commit();
Session Beans can obtain a UserTransaction from SessionContext.
UserTransaction uTran = sessionContext. getUserTranssaction(); UTran.begin(); //Write code to do the unit-of-work Utran.commit();
Only beans that manage their own transactions (session beans) have access to UserTransaction from EJBContext. Beans that do not manage their transaction can only access setRollbackOnly() and getRollbackOnly() methods of EJBContext. An Enterprise bean can choose to roll back a transaction started by the container using the method setRollbackOnly on the SessionContext or EntityContext object. A Session Bean can be designed with bean-managed transaction demarcation or with container-man-aged transaction demarcation. (But it cannot be both at the same time.) An Entity Bean must always be designed with container-managed transaction demarcation. An enterprise bean with bean-managed transaction demarcation must not use the getRollback-Only() and setRollbackOnly() methods of the EJBContext interface. Only a stateful Session bean with container-managed transaction demarcation may implement the SessionSynchronization interface. A stateless Session bean must not implement the Ses-sionSynchronization interface. A container may only passivate a session bean instance when the instance is not in a transaction. A call to a timed out bean results in a NoSuchObjectException being thrown. Exceptions 1. System Exceptions java.lang.RuntimeException, java.rmi.RemoteException and their subtypes. Remember, javax.ejb.EJBException is a subclass of RuntimeException. 2. Application Exceptions Any exception that does not extend java.lang.RuntimeException (or) java.rmi.RemoteException. Transactions are automatically rolled back if a system exception is thrown from a bean method. Transactions are not automatically rolled back if an application exception is thrown. 3. Applicability of J2EE Technology * Identify application aspects that are suited to implementation using J2EE technology * Identify application aspects that are suited to implementation using Enterprise Java Beans * Identify suitable J2EE technologies for the implementation of specified application aspects 4. UML The Unified Modeling Language (UML) is the unification of the object-oriented development methodologies of James Rumbaugh (OMT), Grady Booch (the Booch Method), and Ivar Jacobson (Objectory). The UML can be extended by using stereotypes and constraints. The following types of diagrams comprise the UML: * Use Case-Describes the users of a system and the functions that are provided to the users. The use case consists of actors who initiate or respond to activities described in a use case. The connections between the two are called communications. Uses for Use Cases include: * Determining features. * Communicating with clients to discuss and validate. * Generating test cases; each use case suggests the broad category of a test suite. * Package-Package diagrams are used to identify collections of classes and relationships between packages. Package diagrams group classes into packages, connected by dotted lines called dependencies indicating: one package depends on another if changes in the other (object being pointed at) could possibly force changes in the first.
* Class-Identifies classes, relationships between classes, attributes, and methods. * Class diagram notation: * Association: solid line connecting two classes is an association. * Generalization: solid line with a hollow triangle pointing to the superclass is a generalization. * Aggregation: solid line connecting two classes with a diamond nearest the object that is an aggregation composed of multiple instances of the other class. A solid, filled-in diamond indicates that the parts of the aggregation cannot exist apart from the whole (think of box office and theatre), called composite aggregation, or composition. A hollow diamond indicates aggregation, where the parts can exist apart from the whole (think binder full of notebooks). * Navigability indicated by a "V" arrow pointing from the class that has the reference to the class that is referred. Multiplicities indicated by: Multiplicities Meaning 0..1 zero or one instance. The notation n . . m indicates n to m instances. 0..* or * no limit on the number of instances (including none). 1 exactly one instance 1..* at least one instance
* Object-Describes the state of a system at a particular point in time in terms of objects and relationships between the objects. A type of class diagram, it shows instantiation of a particular class using the notation object name: object class. Example:
Something to note is that class, object and package diagrams are all static and are closely related. * Sequence-Identifies interactions between classes in terms of the exchange of messages. Depicts the flow of events starting from the top left of page. Time progresses as you move down the page, and objects take part in interactions in the left-to-right sequence. The objects taking part in the sequence are depicted at the top of the page. Dotted lines ("lifelines") connect activation bars (narrow rectangles) indicating the object is instantiated and taking part in a interaction. The horizontal arrow lines connecting lifelines are "messages" (typically calls on a method). Example of a Sequence Diagram: * Collaboration-Describes interactions between classes and associations. Associations are special classes that model relationships between classes. They convey the same information as sequence diagrams, but they focus on object roles instead of the times that messages are sent. Each message in a collaboration diagram has a sequence number. The top-level message is numbered 1. Messages at the same level (sent during the same call) have the same decimal prefix but suffixes of 1, 2, etc. according to when they occur. * * State-Identifies the states of a class and the transitions between states that occur as the result of external influences. States are shown as rectangles with rounded corners; state transitions are solid lines with arrows leading to the new state. The action that occurs as a result of the initiating event is shown as "/ action". * Activity-Describes the flow of events that occur within a system--a fancy flowchart. Each entity taking part in the flow of events is shown at the top of each "swimlane". Activities are rounded rectangles, with arrows leading to follow-on activities. Branch points are diamonds, joins are bars. * Component-Identifies the components of a system and the dependencies between the components. * Deployment-Identifies the physical elements of a system and the mapping of software components to these elements. Other notes: Braces indicate constraints. 5. Design Patterns * Identify the most appropriate design pattern for a given scenario * Identify the benefits of using design patterns * State the name of a Gamma, et al design pattern given the UML diagram and/or a brief description of the pattern's functionality * Identify benefits of a specified Gamma, et al design pattern * Identify the Gamma, et al design pattern associated with a specified J2EE technology feature Creational Patterns
Define an interface for creating an object, but let subclasses decide which class to instantiate. Returns one of several different subclasses, depending on the data passed in arguments to the creation methods.
Define an interface for creating families of related or dependent objects without specifying their concrete classes.
Singleton pattern is a class of which there may be no more than one instance. It provides a single global point of access to that instance. For ex. Print Spooler.
Separate the construction of a complex object from its representation so that the same construction process can create different representations.
Specify the kinds of objects to create using a prototypical instance, and create new objects by copying this prototype. For ex. Java Cloning.
Convert the interface of a class into another interface clients expect.
Decouple an abstraction from its implementation so that the two can vary independently.
Compose objects into tree structures to represent part-whole hierarchies. A composite is a collection of objects, any one of which may be either a composite or primitive object.
Attach additional responsibilities to an object dynamically. A flexible alternative to subclassing. Modifies the behavior of individual objects without having to create a derived class.
Provide a unified interface for a set of interfaces in a subsystem. It is a way of hiding a complex system inside a simpler interface.
Use sharing to support large numbers of fine-grained objects efficiently. Each instance does not contain its own state, but stores it externally.
Provide a surrogate or placeholder for another object to control access to it.
Chain of Responsibility
Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chain until an object handles it. Commonly used for parsers and even compilers.
Encapsulate request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations.
Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language.
Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation. For ex, Enumeration
Define an object that encapsulates how a set of objects interact. Mediator promotes loose coupling by keeping object from referring to each other explicitly, and it lets you vary their interaction independently.
Without violating encapsulation, capture and externalize an objects internal state so that the object can be restored to this state later.
Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.
Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.
Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.
Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template method lets subclasses redefine certain steps of an algorithm without changing the algorithm's structure. For ex. An Abstract Class
Represent an operation to be performed on the elements of an object structure. Visitor lets you define a new operation without changing the classes of the elements on which it operates 6. Legacy Connectivity Object mapping requires access to a legacy system's source code. Screen scrapers appear to the host as another terminal and intercept the output intended for the human. The output is then displayed in typically a web-based mode. 7. Security The JCA does NOT contain the actual cryptographic implementations. These are provided by the Provider. Java 2 provides the capability to specify a security policy that determines the accesses that an applet or application is allowed based on its source and the identities of those who have signed the code. The security policy file contains a series of grant entries that identify the permissions granted to an applet or application based on its source and signatures. The keystore is a database of identities and their aliases, public keys, and certificates. JDK 1.1 provided the capability to sign applets, which give the applet full rights as an application on the client computer if the user accepts it. Three types of firewalls: * packet filter fire-walls, * application-level proxy servers, * and stateful packet inspection fire-walls. 8. Common Architectures SINGLE-TIER: PRO: more easily secured CON: * not easily scalable * not easy to integrate TWO-TIER: * characterized by fat clients and data servers * Difficult to deploy, maintain, modify, upgrade THREE OR N-TIER: * Thin clients, middle business logic, data layers * Easy to scale, upgrade, secure. Can be made highly available. ACTIVE REPLICATION Suitable for high-availability Installation on multiple nodes All replicas process the input Voting mechanism Tight synchronization of internal state Quick recovery 9. Messaging PUBLISH-SUBSCRIBE: Many publishers and subscribers. Publishers use subject-based addressing; subscribers the same. Main advantages are scalability (load is dependent on number of subjects published/subscribed) and location-independence. SYNCHRONOUS VS. ASYNCHRONOUS: Asynchronous connects are: * More scalable than synchronous * Make better use of available bandwidth * Evens out the processing loads Synchronous connections are: * Useful when timely response is critical * Suitable for transaction processing * Web server/Web browser is example of synchronous connection INTERNET, EXTRANET, INTRANET: Internet applications must be scalable, secure Extranet apps must have tight security controls. Intranet apps typically have low numbers of users. 10. Protocols * Given a list of some of its features, identify a protocol that is one of the following: HTTP, HTTPS, IIOP, or JRMP Protocols - Ports
HTTP:80 HTTPS:443 IIOP:535 JRMP:1099 * * Given a scenario description, distinguish appropriate from inappropriate protocols to implement that scenario * Select common firewall features that might interfere with the normal operation of a given protocol 11. Internationalization * State three aspects of any application that might need to be varied or customized in different deployment locales * List three features of the Java programming language that can be used to create an internationalizable/localizable application Three areas that are important in Internationalization are: 1. Data Input 2. Data Storage 3. Data Presentation (Formatting) Internationalization is the process of preparing an application to support various languages and nationalities-the aspects that must vary are identified and isolated. All text and other user-interface related materials are placed in a ResourceBundle. Localization is the ability of the program to dynamically change its output to correspond to the locale. Locale is a system property (java.util.locale class) which is settable from a program.
do we really need to know ejb-jar.xml for the exam?
Joined: Oct 06, 2000
Have seen it in some of the mocks; question phrased such as "pick out the elements found in the ejb-jar.xml" would not be out of the realm of possibility. I believe Sun wants you to understand that transaction specifications are found in the ejb-jar.xml. Bottom line, I would know the main elements to be found in the DD's.
You will not be asked about specific tags on the SCEA exam. The mock exams that I have seen go into too much detail to be good representations of the actual exam. You may be asked about things such transactions or concurrency but only from a high-level.
Douglas, Congratulations! BTW, I was looking through the links you provided and one of them (SCEA Powerpoint presentation) is a file on your machine. Is it on the web somewhere, or could you/would you post it someplace? Thanks!
SCJP, SCJD, SCEA 5 "Any sufficiently analyzed magic is indistinguishable from science!" Agatha Heterodyne (Girl Genius)