Service Oriented Architecture


SOA has been a buzz word for me from a long time and finally I found why it was buzzing and for a good reason.

Service Oriented Architecture, where everything is about “service”. E.g. daily we use electricity, water, communication, transportation etc as “service”. We hardly know the how services work, how it is conveyed to us. But we know how to use it; the 1st essence of SOA.

Experts (in knowledge, products, applications etc) are valuable assets all around the world, How about integration of experts to form “best of breed” outcome or to use the existing; the 2nd essence of SOA. Remember, “Write once, run anywhere” (WORA), a slogan created by Sun Microsystems. SOA is “Write Once Reuse Anywhere”.

Reusability and Abstraction are famous features of any OOP and SOA deals with it in smooth manner as we discussed above.

SOA-Reusability

SOA-Reusability

With abstraction and reusability; different flavours in basic features works as toppings.

With SOA, Management and developers communicate in a same language which helps in service implementation overall.

Specific services are implemented as component where all basic features are implemented in a manner that it provides core functionality. In music, if you know the basics of instrument then it helps to co-ordinate with other musician even though you don’t know them. Similarly, standard methodology helps in creating components which communicates with each other without knowing about each other.

Innovation is an inevitable part of IT. Business requests changes as per time, to meet business requirements; different kind of architectures evolves over the time. Architecture provides kind of a framework where we fill the component in and we are done!! It sounds easy but Implementation is not that easy but it opens up the scope for extensibility.

In nutshell Business service is wrapping up of requirements/functionality with the use of abstraction. In simple words, components which hide details and represents essential features and Architecture is where components communicate with each other and forms a complete business process.

E.g. ATM machine, customer gives input to the machine; various checks takes place like authentication, sufficient balance verification, currency verification and finally money is dispatched.

Service Integration

Service Integration

Here Customer verification, Balance verification & Currency verification are components (services) and interaction between them forms a complete business process. We have used OOAP concepts like reusability and abstraction in the discussion.

Now introducing cohesion & coupling. Cohesion, a measure of how strongly-related is the functionality expressed by the source code of a software module. Modules with high cohesion tend to be preferable because high cohesion is associated with several desirable traits of software including robustness, reliability, and reusability. Coupling, the degree to which each program module relies on each one of the other modules. Low coupling often correlates with high cohesion, and vice versa. Services should be highly cohesive and low coupled to serve the main purpose of SOA.

MVC, Sepration of Concern, SOA, AOP

MVC, Sepration of Concern, SOA, AOP

E.g. MVC architecture, separation of concerns!!! Domain logic must be isolated from the input and presentation. Here we are going in detail bit further; As per SOA, the domain logic may be divided into different services which performs interrelated task. Separation of concern is the process of separating a computer program into distinct features that overlap in functionality as little as possible. A concern is any piece of interest or focus in a program. SOA works in exactly similar manner.

Another related term is AOP. In computing, aspect-oriented programming (AOP) is a programming paradigm which isolates secondary or supporting functions from the main program’s business logic.

With SOA, you can use almost all your existing business applications. You may need to change them to fix them in SOA with different flavours.

The important thing to note is, OOP concepts are the driving force in SOA. Hence SOA is nothing new planet; it’s just that IT folks found better way to do things using existing principles. Methodology has changed.

And finally changes are inevitable and happen for good and SOA is no exception. It’s here to stay and with Cloud computing buzzing around, SOA will stand tall for sure.

About these ads

Multi Choice Questions On C and C++ Part 1


Question 1

Identify the correct statement

a. Programmer can use comments to include short explanations within the source code itself.

b. All lines beginning with two slash signs are considered comments.

c. Comments very important effect on the behaviour of the program

d. both

Question 2

The directives for the preprocessors begin with

a.    Ampersand symbol (&

b.    Two Slashes (//)

c.    Number Sign (#)

d.    Less than symbol (<

Question 3

The file iostream includes

a.    The declarations of the basic standard input-output library.

b.    The streams of includes and outputs of program effect.

c.    Both of these

d.    None of these

Question 4

There is a unique function in C++ program by where all C++ programs start their execution

a.    Start()

b.    Begin()

c.    Main()

d.    Output()

Question 5

Every function in C++ are followed by

a.    Parameters

b.    Parenthesis

c.    Curly braces

d.    None of these

Question 6

Which of the following is false?

a.    Cout represents the standard output stream in c++.

b.    Cout is declared in the iostream standard file

c.    Cout is declared within the std namespace

d.    None of above

Question 7

Every statement in C++ program should end with

a.    A full stop (.)

b.    A Comma (,)

c.    A Semicolon (

d.    A colon (

Question 8

Which of the following statement is true about preprocessor directives?

a.    These are lines read and processed by the preprocessor

b.    They do not produce any code by themselves

c.    These must be written on their own line

d.    They end with a semicolon

Question 9

A block comment can be written by

a.    Starting every line with double slashes (//)

b.    Starting  with /* and ending with */

c.    Starting with //* and ending with *//

d.    Starting with <!- and ending with -!>

Question 10

When writing comments you can

a.    Use code and  /* comment on the same line

b.    Use code and // comments on the same line

c.    Use code and //* comments on the same line

d.    Use code and <!- comments on the same line

Question 1.

What is the correct value to return to the operating system upon the successful completion of a program?
A. -1
B. 1
C. 0
D. Programs do not return a value.

Question 2.

What is the only function all C++ programs must contain?
A. start()
B. system()
C. main()
D. program()

Question 3.

What punctuation is used to signal the beginning and end of code blocks?
A. { }
B. -> and <-
C. BEGIN and END
D. ( and )

Question 4.

What punctuation ends most lines of C++ code?
A. . (dot)
B. ; (semi-colon)
C. : (colon)
D. ‘ (single quote)

Question 5.

Which of the following is a correct comment?
A. */ Comments */
B. ** Comment **
C. /* Comment */
D. { Comment }

Question 6.

Which of the following is not a correct variable type?
A. float
B. real
C. int
D. double

Question 7.

Which of the following is the correct operator to compare two variables?
A. :=
B. =
C. equal
D. ==

Question 8.

Which of the following is true?
A. 1
B. 66
C. .1
D. -1
E. All of the above

Question 9.

Which of the following is the boolean operator for logical-and?
A. &
B. &&
C. |
D. |&

Question 10.

Evaluate !(1 && !(0 || 1)).
A. True
B. False
C. Unevaluatable

Question 1:

A function can not be overloaded only by its return type.

a. True

b. False

Question 2:

A function can be overloaded with a different return type if it has all the parameters same.

a. True

b. False

Question 3:

Inline functions involves some additional overhead in running time.

a. True

b. False

Question 4:

A function that calls itself for its processing is known as

a. Inline Function

b. Nested Function

c. Overloaded Function

d. Recursive Function

Question 5:

We declare a function with ______ if it does not have any return type

a. long

b. double

c. void

d. int

Question 6:

Arguments of a functions are separated with

a. comma (,)

b. semicolon (

c. colon (

d. None of these

Question 7:

Variables inside parenthesis of functions declarations have _____ level access.

a. Local

b. Global

c. Module

d. Universal

Question 8:

Observe following function declaration and choose the best answer:

int  divide ( int a, int b = 2 )

a. Variable b is of integer  type and will always have value 2

b. Variable a and b are of int type and the initial value of both variables is 2

c. Variable b is international scope and will have value 2

d. Variable b will have value 2 if not specified when calling function

Question 9:

The keyword endl

a. Ends the execution of program where it is written

b. Ends the output in cout statement

c. Ends the line in program. There can be no statements after endl

d. Ends current line and starts a new line in cout statement.

Question 10:

Strings are character arrays. The last index of it contains the null-terminated character

a. \n

b. \t

c. 

d. \1

Question 1:

The void specifier is used if a function does not have return type.

a.       True

b.      False

Question 2:

You must specify void in parameters if a function does not have any arguments.

a.       True

b.      False

Question 3:

Type specifier is optional when declaring a function

a.       True

b.      False

Question 4:

Study the following piece of code and choose the best answer

int x=5, y=3, z;

a=addition(x,y)

a.       The function addition is called by passing the values

b.      The function addition is called by passing reference

Question 5:

In case of arguments passed by values when calling a function such as z=addidion(x,y),

a.       Any modifications to the variables x & y from inside the function will not have any effect outside the function.

b.      The variables x and y will be updated when any modification is done in the function

c.       The variables x and y are passed to the function addition

d.      None of above are valid.

Question 6:

If the type specifier of parameters of a function is followed by an ampersand (& , that function call is

a.       pass by value

b.      pass by reference

Question 7:

In case of pass by reference

a.       The values of those variables are passed to the function so that it can manipulate them

b.      The location of variable in memory is passed to the function so that it can use the same memory area for its processing

c.       The function declaration should contain ampersand (& in its type declaration

d.      All of above

Question 8:

Overloaded functions are

a.       Very long functions that can hardly run

b.      One function containing another one or more functions inside it.

c.       Two or more functions with the same name but different number of parameters or type.

d.      None of above

Question 9:

Functions can be declared with default values in parameters. We use default keyword to specify the value of such parameters.

a.       True

b.      False

Question 10:

Examine the following program and determine the output

#include <iostream>

using namespace std;

int operate (int a, int b)

{

return (a * b);

}

float operate (float a, float b)

{

return (a/b);

}

int main()

{

int x=5, y=2;

float n=5.0, m=2.0;

cout << operate(x,y) <<”\t”;

cout << operate (n,m);

return 0;

}

a.       10.0      5.0

b.      5.0         2.5

c.       10.0      5

d.      10         2.5

Question 1:

Find out the error in following block of code.

If (x = 100)

Cout << “x is 100”;

  1. 100 should be enclosed in quotations
  2. There is no semicolon at the end of first line
  3. c.       Equals to operator mistake
  4. Variable x should not be inside quotation

Question 2:

Looping in a program means

  1. Jumping to the specified branch of program
  2. b.      Repeat the specified lines of code
  3. Both of above
  4. None of above

Question 3:

The difference between while structure and do structure for looping is

  1. In while statement the condition is tested at the end of first iteration
  2. In do structure the condition is tested at the beginning of first iteration
  3. The do structure decides whether to start the loop code or not whereas while statement decides whether to repeat the code or not
  4. d.      In while structure condition is tested before executing statements inside loop whereas in do structure condition is tested before repeating the statements inside loop

Question 4:

Which of the following is not a looping statement in C?

  1. while
  2. b.      until
  3. do
  4. for

Question 5:

Which of the following is not a jump statement in C++?

  1. break
  2. goto
  3. exit
  4. d.      switch

Question 6:

Which of the following is selection statement in C++?

  1. break
  2. goto
  3. exit
  4. d.      switch

Question 7:

The continue statement

  1. resumes the program if it is hanged
  2. resumes the program if it was break was applied
  3. c.       skips the rest of the loop in current iteration
  4. all of above

Question 8:

Consider the following two pieces of codes and choose the best answer

Code 1:

switch (x) {

case  1:

cout <<”x is 1”;

break;

case 2:

cout <<”x is 2”;

break;

default:

cout <<”value of x unknown”;

}

Code 2

If (x==1){

Cout <<”x is 1”;

}

Else if (x==2){

Cout << “x is 2”;

}

Else{

Cout <<”value of x unknown”;

}

  1. a.       Both of the above code fragments have the same behaviour
  2. Both of the above code fragments produce different effects
  3. The first code produces more results than second
  4. The second code produces more results than first.

Question 9:

Observe the following block of code and determine what happens when x=2?

switch (x){

case 1:

case 2:

case 3:

cout<< “x is 3, so jumping to third branch”;

goto thirdBranch;

default:

cout<<”x is not within the range, so need to say Thank You!”;

}

  1. Program jumps to the end of switch statement since there is nothing to do for x=2
  2. The code inside default will run since there is no task for x=2, so, default task is run
  3. c.       Will display x is 3, so jumping to third branch and jumps to thirdBranch.
  4. None of above

Question 10

Which of the following is false for switch statement in C++?

  1. It uses labels instead of blocks
  2. we need to put break statement at the end of the group of statement of a condition
  3. c.       we can put range for case such as case 1..3
    1. None of above

    Disclaimer:- Source can be : Mcqs On Computer By : Dr. Alok Kumar or psexam.com (I am not sure about it; I compiled it and converted in better format for my own study; Just sharing in case anyone finds it useful; don’t want to take credit from the original author)

Java Notes-3


    • You need a boolean in the if condition.
    • An overriding method only needs to declare that it can throw a subset of the exceptions the overriden method can throw. Having no throws clause in the overriding method is OK.
    • Normal execution will not resume if an exception is uncaught by a method. The exception will propagate up the invocation stack until some method handles it. If no one handles it then the that thread will terminate.
    • The expression (a = b) does not compare the variables a and b, but rather assigns the value of b to the variable a. The result of the expression is the value being assigned. Since a and b are boolean variables, the value returned by the expression is also boolean. This allows the expressions to be used as the condition for an if-statement.
    • “if-clause and the else-clause can have empty statements. Empty statement ( ie. just ; ) is a valid statement.
      But this is illegal :
      if (true) else;
      because the if part doesn’t contain any valid statement. ( A statement cannot start with an else!)
      So, the following is valid.
      if(true) if(false);
      because if(false); is a valid statement.

Java™ Application Development on Linux® – Free 599 Page eBook

Enterprise Java Virtualization:

Understanding the TCO Implications

InfoWorld’s Java IDE Comparison Strategy Guide:

Java Essential Training

Apache Jakarta Commons: Reusable Java™ Components

Enabling Rapid ROI: With Java™ – Based Business Intelligence Applications:

  • Read the questions carefully. This is very important. Questions are easy but you need to read them carefully.
  • The type of the switch expression (ie. in switch( i ), the type of i )must be char, byte, short, or int, or a compile-time error occurs.
  • The body of a switch statement must be a block. Any statement immediately contained by the block may be labeled with one or more case or default labels. These labels are said to be associated with the switch statement, as are the values of the constant expressions in the case labels.
  • “Every case constant expression associated with a switch statement must be assignable to the type of the switch
    Expression. ie. if the switch expression is of type byte then all the case constants must fit in a byte.(eg. you can’t you 200 as a case value)”
  • No two of the case constant expressions associated with a switch statement may have the same value.
  • At most, one default label may be associated with the same switch statement.
  • “public class TestClass
    {
    public static void main(String args[])
    {
    Exception e = null;
    throw e;
    }
    }”
    You are throwing an exception and there is no try catch block or a throws clause. So it will not compile. If you do that (ie. either put a try catch block or declare a throws clause) then at run time it will throw a null pointer exception as e is null.
    A method that throws an exception either must declare it in throws clause or put the code that throws the exception in try/catch block.
  • Every case constant expression in a switch block must be assignable to the type of switch expression. Meaning :
    “byte by = 10;
    switch(by)
    {
    200 : //some code;
    300 : //some code;
    }
    This will not compile as 300 is not assignable to ‘by ‘ which can only hold values from -128 to 127.

    The use of break keyword is not mandatory, and without it the control will simply fall through the labels of the switch statement.
  • “A break without a label breaks the current loop (ie. no iterations any more) and a break with a label tries to pass the control to the given label.
    ‘Tries to’ means that if the break is in a try block and the try block has a finally clause associated with it then it will be executed.”
  • U can apply a label to any block but not like loop: int x=0;
  • “This is the hierarchy:
    java.lang.Object
    |
    +–java.lang.Throwable
    |
    +–java.lang.Exception, java.lang.Error
  • So the method can even give Throwable ( but not Object !) in throws statement”
  • With a try, either of (multiple) catch and (only one) finally or both can occur. finally must occur only in the end. A try MUST be followed by atleast a catch or finally.
  • The break statement is to break out of any loop completely. So the current iteration and any other remaining iterations of the loop will not happen. Control is transferred to the first statement below the loop.
  • Name of the file is not passes in the args
  • if finally is throwing an Null pointer exception which is RuntimeException so there is no need to handle it or declare it in the throws clause.
  • It is not possible to break out of an if statement. But if the if statement is placed within a labeled block or a switch statement or a loop construct, the usage of break in option 3 would be valid.
  • for (int i=5; i=0; i–) { }
    uses ‘=’ instead of ‘==’ for condition which is invalid. The loop condition must be of type boolean
  • int j=5;
    for(int i=0, j+=5; i uses ‘j +=5′. Now, this statement is preceeded by ‘int i=0,’ and that means we are trying to declare variable j . But it is already declared before the for loop. If we remove the int in the initialization part and declare i before the loop then it will work.But if we remove the statement int j = 5; it will not work because compiler will try to do j = j+5 and you can’t use the variable before it is initialized. Although the compiler gives a message ‘Invalid declaration’ for j += 5 but it really means the above mentioned thing.
  • “int i, j;
    for (j=10; iThrowable – > Exception -> MyException.”
  • You can declare anything that is a Throwable or a subclass of Throwable, in the throws clause.
  • “while (false) { x=3; } in a compile-time error because the statement x=3; is not reachable;
    but the superficially similar case:
    if (false) { x=3; }
    does not result in a compile-time error. An optimizing compiler may realize that the statement x=3; will never be executed and may choose to omit the code for that statement from the generated class file, but the statement x=3; is not regarded as “”unreachable”" in the technical sense .
    The rationale for this differing treatment is to allow programmers to define “”flag variables”" such as:
  • static final boolean DEBUG = false;
  • and then write code such as:
    if (DEBUG) { x=3; }
    The idea is that it should be possible to change the value of DEBUG from false to true or from true to false and then compile the code correctly with no other changes to the program text. This ability to “”conditionally compile”" has a significant impact on, and relationship to, binary compatibility . If a set of classes that use such a “”flag”" variable are compiled and conditional code is omitted, it does not suffice later to distribute just a new version of the class or interface that contains the definition of the flag. A change to the value of a flag is, therefore, not binary compatible with preexisting binaries.
  • This is valid : for( int i = 0; i< 0; i++) x = 3; but this is not : for( int i = 0; false; i++) x = 3;
  • “The Exception that is thrown in the last, gets thrown by the method.
    So, When no exception or any exception is thrown at line 1, the control goes to finally or some catch block. Now, even if the catch blocks throw some exception, the control goes to finally. The finally block throws CloneNotSupportedException, so the whole method ends up throwing CloneNotSupportedException.”
  • “All the arrays are initialized to contain the default values of their type. This means,
    int[] iA = new int[10]; will contain 10 ints having 0.
    Object[] oA = new Object[10]; will contain 10 object references pointing to null.
    boolean[] bA = new boolean[10] will contain 10 booleans of value ‘false’.
    So, as bA[0] is false, the if condition fails and str remains 111.”
  • “If no args are given a Zero length string array is received in the main method. So, there is no NullPointerException on accessing args even if no args are given.
    Indexing in java starts from zero. so the last element will be at args.length -1.”
  • Runnable r=new Thread(); is allowed since Thread implements runnable interface
  • To make a class abstract, you only need to mark it as abstract as in option4. You don’t neccessorily need to put an abstract method.
  • java and classname are not part of the args array.
  • String is not a keyword , it’s a normal Class
  • “You cannot have two methods with the same name in one class.
    Also, even if you put one sayHello() method in other class which is a subclass of this class, it won’t compile because you cannot override/hide a static method with a non static method and vice versa.”
  • Objects are created from class definitions that implement abstractions. The objects that are created are concrete realizations of those abstractions.
  • “Note that Arrays are Objects (ie. cA instanceof Object is true) so are passed by reference. So in m1() the change in cA[1] done by m2() is reflected everywhere the array is used.
    c is a primitive type and is passed by value. In method m2() the passed parameter c is different than instance variable ‘c’ as local variable hides the instance variable. So instance member ‘c’ keeps it’s default (i.e 0) value.
  • Note that both equals() and hashcode() methods can be overridden by the programmer so you can’t say how they work.
  • “public class TestClass
    {
    public static void main(String args[ ] )
    {
    Object a, b, c ;
    a = new String(“”A”");
    b = new String(“”B”");
    c = a;
    a = b;
    System.out.println(“”"”+c);
    }
    }”
    “The variables a, b and c contain references to actual objects. Assigning to a refrence only changes the refrence value, and not the object pointed to by it. So, when c = a is executed c starts pointing to the string object containing A. and when a = b is executed, a starts pointing to the string object containing B but the object containing A still remains same and c still points to it. So the program prints A and not B.
  • For the class that does not define toString() method, the inherited toString() method ( from java.lang.Object) is called. This method returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@’, and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of :
    getClass().getName() + ‘@’ + Integer.toHexString(hashCode())
  • But in this case, String class overrides the toString() method that returns the actual string.
  • “Theoratically, java supports Pass by Value for everything ( ie. primitives as well as Objects).
    . Primitives are always passed by value.
    . Object “”references”" are passed by value. So it looks like the object is passed by reference but actually it’s the value of the reference that is passed.
  • A crude example:
    Object o1 = new Object(); //say, the object is stored at memory location 15000. So o1 actually contains 15000.
  • now, when you call someMethod(o1); the value 15000 is passed.
  • Inside the method someMethod
    someMethod( Object localVar)
    {
    ……localVar contains 15000 so, whatever method you call or modication you do to this varibale, it is done on the original object. But when you try to change it’s value, for eg. make it null, it then contains 000000 (say). But the original variable o1 still contains 15000 so it still points to the same object.
    }
  • In the above question, the local variable is what is changed the original variable ie.someInt remains unchanged.
  • “The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@’, and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:
  • getClass().getName() + ‘@’ + Integer.toHexString(hashCode())”
  • There no unsigned keyword in java!
  • “Java implements abstractions using classes that have properties and behavior. Behavior is dictated by the operations of the abstraction. In Java the operations are defined in classes using methods.
  • “All member fields (static and non-static) are initialized to their default values.
    Default values are: objects are initilized to null (String is also an object), numeric types to 0 (or 0.0 ) and boolean to false.
  • Note that if no argument is passed the args parameter is NOT null but a valid non-null string array of length zero.
  • “As the question says, “”…an instance of the class is not needed…”", the method has to be static.
    Also, as the question does not say that other packages should not have access to the method so public or protected is also correct. But it is better to choose option 2 as it is most appropriate.
    Also as you are asked to select only 1 option,it is better to select option 2 other wise you can select other options also.”
  • “Non-static inner classes can contain final static fields (but not methods).
    Anonymous classes cannot have explict constructors, since they have no names.
  • A static inner class is also known as A Top Level Nested class. So,there are two types of Top level classes. One, that is a standard class and other an inner class which is static. Eg.
    public class A //This is a standard Top Level class.
    {
  • class X
    {
    static final int j = 10; //compiles fine!
    }
    public static class B //This is also a Top Level class (but nested!)
    {
    }
    }
    You can create objects of B with having objects of A. Eg. A.B b = new A.B();
  • Members in outer instances are directly accessible using simple names. There is no restriction that member variables in inner classes must be final.
    Nested classes define distinct types from the enclosing class, and the instanceof operator does not take of the outer instance into consideration.”
  • Altough nonsensical, an empty file is a valid source file. A source file can contain optional package declaration, any number of import statments and any number of class and interface definitions.(only one class/interface in a file can be public though.)
  • An instance member belongs to a single instance, not the class as a whole. An instance member is a member variable or a member method that belongs to a specific object instance. All non-static members are instance members.
  • “The following is a valid code…
  • abstract class SomeClass { public abstract void m1(); }
    public class TestClass
    {
    public static SomeClass getSomeClass() //note static
    {
    return new SomeClass()
    {
    public void m1() { }
    };
    }
    }
  • Another important point to note here is : Contrary to common belief, Anonymous class declared/defined/instantiated in a static method is NOT static. In fact, you can verify it by doing: javap TestClass$1

    Other interesting FAQs related Posts on Java, you may like:

    Java Notes – 1 (clean-clouds.com)

    Java Notes – 2 (clean-clouds.com)

    Java Notes – 3 (clean-clouds.com)

    Java Notes -4 (clean-clouds.com)

    Java Notes -5 (clean-clouds.com)

    Java Notes -6 (clean-clouds.com)

    Frequently Asked Questions in Java Part- 1 (clean-clouds.com)

    Frequently Asked Questions in Java Part- 2 (clean-clouds.com)

    Frequently Asked Questions in Java Part-3 (clean-clouds.com)

    Frequently Asked Questions in Java Part-4 (clean-clouds.com)

    Frequently Asked Questions in Java Part-5 (clean-clouds.com)

    Frequently Asked Questions in Java Part-6 (clean-clouds.com)

    Frequently Asked Questions in Java Part-7 (clean-clouds.com)

    Frequently Asked Questions in Java Part-8 (clean-clouds.com)

    Frequently Asked Questions in Java Part-9 (clean-clouds.com)

    Frequently Asked Questions in Java Part-10 (clean-clouds.com)

    Frequently Asked Questions in Java Part-11 (clean-clouds.com)

    Frequently Asked Questions in Java Part-12 (clean-clouds.com)

    Frequently Asked Questions in Java Part-13 (clean-clouds.com)

    Frequently Asked Questions in Java Part-14 (clean-clouds.com)

Single Sign-On for Java and Web Applications

Bulletproof Java Code: A Practical Strategy for Developing Functional, Reliable, and Secure Java Code

Transforming a Generic Java IDE to Your Application Specific IDE:

The Java Virtual Appliance—No OS Required

BEA WebLogic® Operations Control: Application Virtualization for Enterprise Java

Enabling Rapid ROI: With Java™ – Based Business Intelligence Applications: