It is 10:15 pm now in Sydney, Australia on Christmas Eve. Everyone is waiting for tomorrow, the Christmas day. I Wish all of you around the world in different time zones a very happy and merry Christmas. May Lord Jesus Shower His Choicest Blessings on citizens of this Planet earth, particularly on the IT Professionals.
!!!!!!!!!!!!!!!!!!MERRY CHRISTMAS!!!!!!!!!!!!!!!!!!!
Monday, December 24, 2007
Wednesday, December 19, 2007
Virtualization
Virtualization of servers is being tried in most of the IT companies these days.
Companies like Redhat are investing lot of time and resources in this area and have come up with branded solutions. Utilising the computing power fully that is offered by a computer server by virtually dividing the power in to silos of computing power is the main concept behind this.
As opposed to a scale up solution where computers are added, virtualization adds computing power or fully utilises the virtual spare computing resources that are available on the spare server.
I was reading a question in one of the internet sites where J2EE Architect Certification Exam questions are posted. The question is: When an application needs more computing power, will you prefer scaling up or virtualization as both offer the required computing power. It was an interesting question for an application architect. I was reading the answer which mentioned that virtualization is preferred option due to better Garbage collection at virtual server level.
The same concept of virtualization is now extended to Grid computing, cloud computing. Many projects at global level are pursued in industries such as biotechnology, astronomy, physics and health that utilise the global computing resources in a grid or cloud of computers.
I will try to post more on this topic later.
Companies like Redhat are investing lot of time and resources in this area and have come up with branded solutions. Utilising the computing power fully that is offered by a computer server by virtually dividing the power in to silos of computing power is the main concept behind this.
As opposed to a scale up solution where computers are added, virtualization adds computing power or fully utilises the virtual spare computing resources that are available on the spare server.
I was reading a question in one of the internet sites where J2EE Architect Certification Exam questions are posted. The question is: When an application needs more computing power, will you prefer scaling up or virtualization as both offer the required computing power. It was an interesting question for an application architect. I was reading the answer which mentioned that virtualization is preferred option due to better Garbage collection at virtual server level.
The same concept of virtualization is now extended to Grid computing, cloud computing. Many projects at global level are pursued in industries such as biotechnology, astronomy, physics and health that utilise the global computing resources in a grid or cloud of computers.
I will try to post more on this topic later.
Saturday, October 6, 2007
Some useful EA resources
Here are some useful resources that have information on Enterprise Architecture.
The Global Enterprise Architecture Organisation
http://www.etheryl.net/GEAO/
TOGAF (The Open Group Architecture Framework)
http://www.opengroup.org/architecture/
Institute for Enterprise Architecture Developments
http://www.enterprise-architecture.info/
The Zachman Institute for Framework Advancementhttp://www.zifa.com/
The Global Enterprise Architecture Organisation
http://www.etheryl.net/GEAO/
TOGAF (The Open Group Architecture Framework)
http://www.opengroup.org/architecture/
Institute for Enterprise Architecture Developments
http://www.enterprise-architecture.info/
The Zachman Institute for Framework Advancementhttp://www.zifa.com/
Tuesday, October 2, 2007
Deployability of Web Services
Since the evolution of Web Services, several approaches were invented to create and deploy web services. However, web services deployments are tightly coupled with the application server or containers for which they were cooked for. Sun suggested to use the deploytool to deploy the web services on Sun One server. JBoss uses ant or maven approach. Webspehere, Weblogic,Tomcat,Jetty,Geronimo,Oracle OC4J have their own approaches based on the WS specific libraries, code generators and deployment descriptors.
Any SOA project or application has a standard methodology. You first define the Service Endpoint Interface, generate the WSDL and deployment descriptors to finally build and deploy the WAR or EAR files. The deployments only work for which they were created for. Added to this are the various approaches thrown by the various IDEs, NetBeans, JDeveloper, Eclipse, JBoss IDE for Eclipse and so on. Each have their own approaches to create and deploy web services. What works on JBoss would not work on Oracle AS.
Can we call web services fully interoperable interms the development paradigms that are quite varied and complex?
Any SOA project or application has a standard methodology. You first define the Service Endpoint Interface, generate the WSDL and deployment descriptors to finally build and deploy the WAR or EAR files. The deployments only work for which they were created for. Added to this are the various approaches thrown by the various IDEs, NetBeans, JDeveloper, Eclipse, JBoss IDE for Eclipse and so on. Each have their own approaches to create and deploy web services. What works on JBoss would not work on Oracle AS.
Can we call web services fully interoperable interms the development paradigms that are quite varied and complex?
Monday, September 17, 2007
Quiz on Ant
I have developed a small quiz on Ant. The answers are very simple, but let me know if you need them.
Q1. Which is the current version of Apache Ant framework?
a) 1.5
b) 1.2
c) 1.7
d) 2.0
Q2. Which command is used to get the installed version of the Ant?
a) ant version
b) ant which version
c) ant –version
d) ant /version
Q3. Name the main configuration file used in Ant?
a) build.properties
b) application.properties
c) config.xml
d) Build.xml
Q4. Name the file that stores build settings?
a) build.environment
b) build.properties
c) environment.properties
d) settings.xml
Q5. Which of the following is not a target in the Ant build?
a) init
b) clean
c) junit
d) war
Q6. Which of the following represents the correct sequence of targets in a typical Ant build?
a) compile, init, junit, ear, zip, clean
b) init, clean, junit, compile, zip, ear
c) clean, init, compile, junit, ear, zip
d) clean, init, compile, junit, zip, ear
Q7. What is the function of init target in Ant build?
a) set the relevant java version, jdk version for the build
b) set the relevant application server version for the build
c) set the relevant database properties for the build
d) set the relevant parameters for the build cycle such as reading properties and creating a directory structure.
Q8. What is the function of clean target in the Ant build?
a) Remove the build artefacts from previous build cycles so the application can be built cleanly.
b) Clean the JVM memory before the build starts
c) Delete any temporary files from the temp directory
d) Create empty files that store build information
Q9. Which statement is true about junit target in Ant build?
a) it creates a series of junit tests for all the class modules in the application
b) it runs the junit tests that are defined for the application using the junit runner
c) it checks the junit version installed
d) it installs the junit software if not already installed
Q10. Which statement is true about ear target in Ant build?
a) it creates only an ear file by assembling the classes and application resources.
b) It creates only a war file and prompts the user to select a file location to save it.
c) It creates an ear file that has a war file inside it by assembling the classes and application resources.
d) None of the above
Q1. Which is the current version of Apache Ant framework?
a) 1.5
b) 1.2
c) 1.7
d) 2.0
Q2. Which command is used to get the installed version of the Ant?
a) ant version
b) ant which version
c) ant –version
d) ant /version
Q3. Name the main configuration file used in Ant?
a) build.properties
b) application.properties
c) config.xml
d) Build.xml
Q4. Name the file that stores build settings?
a) build.environment
b) build.properties
c) environment.properties
d) settings.xml
Q5. Which of the following is not a target in the Ant build?
a) init
b) clean
c) junit
d) war
Q6. Which of the following represents the correct sequence of targets in a typical Ant build?
a) compile, init, junit, ear, zip, clean
b) init, clean, junit, compile, zip, ear
c) clean, init, compile, junit, ear, zip
d) clean, init, compile, junit, zip, ear
Q7. What is the function of init target in Ant build?
a) set the relevant java version, jdk version for the build
b) set the relevant application server version for the build
c) set the relevant database properties for the build
d) set the relevant parameters for the build cycle such as reading properties and creating a directory structure.
Q8. What is the function of clean target in the Ant build?
a) Remove the build artefacts from previous build cycles so the application can be built cleanly.
b) Clean the JVM memory before the build starts
c) Delete any temporary files from the temp directory
d) Create empty files that store build information
Q9. Which statement is true about junit target in Ant build?
a) it creates a series of junit tests for all the class modules in the application
b) it runs the junit tests that are defined for the application using the junit runner
c) it checks the junit version installed
d) it installs the junit software if not already installed
Q10. Which statement is true about ear target in Ant build?
a) it creates only an ear file by assembling the classes and application resources.
b) It creates only a war file and prompts the user to select a file location to save it.
c) It creates an ear file that has a war file inside it by assembling the classes and application resources.
d) None of the above
Sunday, September 16, 2007
What contributes to success of a J2EE Application
What contributes to success of a J2EE Application?
This was one of the questions that came to mind after implementing a J2EE application recently.
Having involved in supporting several J2EE applications and also developing J2EE applications, I have learned something that I would like to share.
Determining the success criteria is very complex.
If we know that an application is performing poorly, then we can analyse the problem area and find out what is causing the problem. It could be the application server or container, the java components (the coding style of the developer or code efficiency or style), JDBC driver, load balancers, database architecture, hardware used, DNS servers, authentication servers or the overall application design or framework.
There are so many performance tips available ranging from changing design patterns to hardware load balancing to complete rewrite of a solution. A change in hardware can sometimes greatly improve an application and so on. Things can go wrong anywhere.
So, when a new application is designed, from a technical POV, all of the above (also anything that I might have missed here) will contribute to the success of a J2EE application and are equally important. A well designed application using frameworks such as Spring or Struts could misbehave if wrong load balancing or clustering algorithems are implemented. Similary an incorrect hardware plan or brand could hide the goodness of the frameworks.
Also, non technical contributors to success or failure include the software development methodology, project management framework, skills and experience. I have not included development outsourcing here which also can influence both positively and negatively.
This was one of the questions that came to mind after implementing a J2EE application recently.
Having involved in supporting several J2EE applications and also developing J2EE applications, I have learned something that I would like to share.
Determining the success criteria is very complex.
If we know that an application is performing poorly, then we can analyse the problem area and find out what is causing the problem. It could be the application server or container, the java components (the coding style of the developer or code efficiency or style), JDBC driver, load balancers, database architecture, hardware used, DNS servers, authentication servers or the overall application design or framework.
There are so many performance tips available ranging from changing design patterns to hardware load balancing to complete rewrite of a solution. A change in hardware can sometimes greatly improve an application and so on. Things can go wrong anywhere.
So, when a new application is designed, from a technical POV, all of the above (also anything that I might have missed here) will contribute to the success of a J2EE application and are equally important. A well designed application using frameworks such as Spring or Struts could misbehave if wrong load balancing or clustering algorithems are implemented. Similary an incorrect hardware plan or brand could hide the goodness of the frameworks.
Also, non technical contributors to success or failure include the software development methodology, project management framework, skills and experience. I have not included development outsourcing here which also can influence both positively and negatively.
Saturday, September 15, 2007
Architectural Fit
A good solution architecture will fit well in to the
overall landscape interms of volume, color, slope
and overall built environment. There are bricks, patterns, styles and a plan for this building.
Similarly, a well designed application solution should fit nicely in to the overall enterprise architecture. There too are bricks (Desktop Pc's, peripherals, desktop applications etc) , patterns, styles, enterprise and plan (grid) for enterprise applications. There is an element of creativity in designing enterprise applications. It is not totally dry in my POV.
overall landscape interms of volume, color, slope

and overall built environment. There are bricks, patterns, styles and a plan for this building.
Similarly, a well designed application solution should fit nicely in to the overall enterprise architecture. There too are bricks (Desktop Pc's, peripherals, desktop applications etc) , patterns, styles, enterprise and plan (grid) for enterprise applications. There is an element of creativity in designing enterprise applications. It is not totally dry in my POV.
Monday, September 10, 2007
Application Architect
Application Architect's role is an interesting one. This role assumes single point of responsibility for the application solution mainly from a functional perspective. Application architects define the application architecture, resolve gigh level functional issues, coach or mentor the applications team in the development of the application solution and provide continuity in all important application solution decisions. Also the application architect guides the functional specialist like business analyst in the development and integration ofd packaged application solution.
In a large organisation, the application architect interacts with several other distinct roles in successfully achieving the objectives of the project. These roles include technical architect, framework architect, data architect, project manager, functional specialist and project sponser or project acceptor. In smaller organisations, these roles may be assumed or shared by few people.
An application architect's skills are varied and numerous. All application architects may not have all the skills and may have a subset of skills that are relevant to a particular project or application type. As a minimum all architects will have an ability to perform the activities and tasks for which the role is responsible and apply the techniques necessary to complete the responsibilities of the role using the tools required by these activities, taks and techniques.
An application architect should have experience on a number of projects in all stages of the development life cycle including uncovering requirements, conceptualizing solutions, developing a framework for implementation of a system. Where object technology is used, the architect should have skills that are applicable to object architect. From interpersonal skills perspective, architects should have a high level personal attributes, business skills and a high degree of leadership skills.
Enterprise Architect and Application Architect
================================
Enterprise architecture presents multiple contexts to application architecture which have implications for the role of the application architect. Enterprise architecture can be depicted as as the interrelationship of multiple architecture domains that must effectively interoperate to form a cohesive whole, ie, the enterprise. The Enterprise Architect is interested in what binds and connects thes multiple domains with an understanding of their distinct responsibilities rather than with the details of the individual domains themselves.
One of the domains can be that of application architecture for which the enterprise architecture expects compliance to a set of common characteristics that all applications must share in order to be effective members of the enterprise architecture. In order to achive membership for the applications in the enterprise architecture, the application architect role assumes a strong governance role that collaborates with the enterprise architect in an ongoing and successful relationship. This is where the interpersonal skills of the application architect play an impornat role and can not be overlooked.
Application architects are engaged sometimes to provide leadership and guidance to extend the life of a large mission critical system through a series of strategic intiatives. These initiatives include process improvements with the System Development Life Cycle, Code improvements, identification of improvements opportunities in problem areas identified by the rigorous quality benchmark initiatives.
Some of the application architects whom I have interacted have performed a range of activities in their day to day job routines. I will try to list some of them.
In a large organisation, the application architect interacts with several other distinct roles in successfully achieving the objectives of the project. These roles include technical architect, framework architect, data architect, project manager, functional specialist and project sponser or project acceptor. In smaller organisations, these roles may be assumed or shared by few people.
An application architect's skills are varied and numerous. All application architects may not have all the skills and may have a subset of skills that are relevant to a particular project or application type. As a minimum all architects will have an ability to perform the activities and tasks for which the role is responsible and apply the techniques necessary to complete the responsibilities of the role using the tools required by these activities, taks and techniques.
An application architect should have experience on a number of projects in all stages of the development life cycle including uncovering requirements, conceptualizing solutions, developing a framework for implementation of a system. Where object technology is used, the architect should have skills that are applicable to object architect. From interpersonal skills perspective, architects should have a high level personal attributes, business skills and a high degree of leadership skills.
Enterprise Architect and Application Architect
================================
Enterprise architecture presents multiple contexts to application architecture which have implications for the role of the application architect. Enterprise architecture can be depicted as as the interrelationship of multiple architecture domains that must effectively interoperate to form a cohesive whole, ie, the enterprise. The Enterprise Architect is interested in what binds and connects thes multiple domains with an understanding of their distinct responsibilities rather than with the details of the individual domains themselves.
One of the domains can be that of application architecture for which the enterprise architecture expects compliance to a set of common characteristics that all applications must share in order to be effective members of the enterprise architecture. In order to achive membership for the applications in the enterprise architecture, the application architect role assumes a strong governance role that collaborates with the enterprise architect in an ongoing and successful relationship. This is where the interpersonal skills of the application architect play an impornat role and can not be overlooked.
Application architects are engaged sometimes to provide leadership and guidance to extend the life of a large mission critical system through a series of strategic intiatives. These initiatives include process improvements with the System Development Life Cycle, Code improvements, identification of improvements opportunities in problem areas identified by the rigorous quality benchmark initiatives.
Some of the application architects whom I have interacted have performed a range of activities in their day to day job routines. I will try to list some of them.
- They have understood cutting edge and bleeding edge application architectures, technology, solutions and industry trends.
- Interacted with technical leaders in the company to identify and scope the applicative opportunities and discuss risks etc.
- Decompose the opportunities in to constituent application solutions.
- Document application architectures and road map and create application architecture proposals based on identified solution gaps.
- Evaluate application and technology views of the application development approach and identify risks.
- Provide application architectural advice, solution and planning guidance to the development team.
- Use and advocate the use of right developoment frameworks, methodologies.
- Knowledge management of solutions implemented and turning them to best practices for reuse.
- Identify the technical gurus or strategists in client organisations, if in a consulting role.
- Develop sound relationships with customers and develop strategic initiatives
- Ensured adherance to development, testing and architecture standards and procedures.
- Took responsibility of evaluating existing legacy solutions, performances and proposing guidelines, tools and methodologies for future developments.
Monday, September 3, 2007
Solution Architecture
Solution Architecture is my favourate subject and I do work in this space.
Each medium to large size organisation has an Enterprise Architecture in place these days. It might be developed in house or developed by a consultant. Solution Architecture for a specific project may it be a software project or an infrastructure project need to fit in to the Enterprise Architecture nicely and all efforts of an Enterprise Architect and Solution Architect revolve around this theme. It's like an architect designing a University Campus where the Master Plan has been developed and all individual structures must fit in to the overall Master Plan both in layout and in asthetics. It's like a city plan developed by Urban Planners where any new building needs approvals from councils. Urban Planners can be compared to Enterprise Architects where as Building Consultants such as Architects can be compared to Solution Architects in IT Space.
A Solution Architect oversees Construction of IT Projects for the Solutions Developed by him or her.
This puts Architects more in a Construction Mode rather than in a Design Mode. The tools used by Solution Architects assist them in developing conceptual solutions. Unified Modeling Language or UML is the language of Solution Architects.
"There is one GOD and there is only one LANGUAGE, UML for Solution Architects in J2EE Space".
However there are a number of tools in non J2EE Space such as Erwin, DBArchitect and so on.
The main strength of Sulution Architects is 'Technology Strength'. They must be highly technical and competent in various technologies, i.e., 2-tier, 3-tier, n-tier, databases, networks, operating systems, languages, b2b, b2c, integration, digital media, animation, SOA, J2EE, .Net, BPEL, SAN and much more.
Experience with Open Source Technologies will add value these days.
Each medium to large size organisation has an Enterprise Architecture in place these days. It might be developed in house or developed by a consultant. Solution Architecture for a specific project may it be a software project or an infrastructure project need to fit in to the Enterprise Architecture nicely and all efforts of an Enterprise Architect and Solution Architect revolve around this theme. It's like an architect designing a University Campus where the Master Plan has been developed and all individual structures must fit in to the overall Master Plan both in layout and in asthetics. It's like a city plan developed by Urban Planners where any new building needs approvals from councils. Urban Planners can be compared to Enterprise Architects where as Building Consultants such as Architects can be compared to Solution Architects in IT Space.
A Solution Architect oversees Construction of IT Projects for the Solutions Developed by him or her.
This puts Architects more in a Construction Mode rather than in a Design Mode. The tools used by Solution Architects assist them in developing conceptual solutions. Unified Modeling Language or UML is the language of Solution Architects.
"There is one GOD and there is only one LANGUAGE, UML for Solution Architects in J2EE Space".
However there are a number of tools in non J2EE Space such as Erwin, DBArchitect and so on.
The main strength of Sulution Architects is 'Technology Strength'. They must be highly technical and competent in various technologies, i.e., 2-tier, 3-tier, n-tier, databases, networks, operating systems, languages, b2b, b2c, integration, digital media, animation, SOA, J2EE, .Net, BPEL, SAN and much more.
Experience with Open Source Technologies will add value these days.
Subscribe to:
Posts (Atom)