Discussion Locked

Tech Spot

0 helpful
18 replies
Closed to new repliesThis discussion is closed. It stays readable, but it takes no new replies.
blog root

18 replies

by munish k gupta

I have always found it difficult to keep track of the RAD tools and where are they supposed to be used. Today, I am listing down the RAD Tool options for Design and construction phase.

Design and construction tools
IBM Rational provides tools for architecture, design modeling, construction, model-driven development, architected rapid application development (RAD), component testing and runtime analysis activities. These tools help developers maximize their productivity when building business applications, software products and systems, and embedded systems and devices.

  • IBM Rational Software Architect: A design and construction tool for software architects and senior developers creating applications for the Java platform or in C++ that leverages model-driven development with the UML and unifies all aspects of software application architecture
  • IBM Rational Software Modeler: A UML-based visual modeling and design tool for architects, system analysts, and designers that need to ensure that their specifications, architecture, and designs are clearly defined and communicated with their stakeholders
  • IBM Rational Web Developer for WebSphere Software: Build, test and deploy Web, Web services and Java applications with an IDE that is easy to learn and use.
  • IBM Rational Application Developer for WebSphere Software: Quickly design, develop, analyze, test, profile and deploy Web, Web services, Java, J2EE and Portal applications with a comprehensive IDE.
  • IBM Rational Rose Technical Developer: Supports the most advanced modeling constructs, including model execution and fully executable code generation, resulting in the highest levels of productivity.

Hopefully, it helps in selecting the right tools for the right work.

Filed in: IBM

This post originally appeared on an external website

by munish k gupta

Continuing my previous post which detailed on what Rational Tools are available to build and construct, here is the list of the Tools from Rational used for Software Testing.

Testing tools enable running quality assurance on software products, testing for code consistency, quality, functionality and performance.

  • IBM Rational Manual Tester: A manual test authoring and execution solution employing principles of automation, organization and reuse to innovate a commonly used testing practice.
  • IBM Rational Functional Tester: An advanced, automated functional and regression testing tool for testers and GUI developers who need fine-grained control and flexibility for their testing of Java, .NET and Web-based applications.
  • IBM Rational Performance Tester: A performance test creation, execution and analysis tool for teams validating the scalability and reliability of their Web-based applications before deployment.
  • IBM Rational PurifyPlus allows developers to create faster, more reliable J2EE and J2SE code. It provides host-based memory profiling, performance profiling, and code coverage analysis.
  • IBM Rational Test RealTime provides host-based memory profiling, performance profiling, and code coverage analysis for the J2SE/J2ME developer, plus adds runtime tracing, and does so for cross-platform development efforts. Rational Test RealTime also has an integration with JUnit to extend the value of the Java industry's popular unit testing tool to the J2ME and embedded marketplace.

Filed in: IBM

This post originally appeared on an external website

by munish k gupta

This compilation of tips and guidelines from services, development, and support personnel about IBM? Workplace Web Content Management? is based on daily product experience including real customer engagements. This information includes selected topics and applies to version 5.1.0.x.; other versions might have different best practices. If you are currently involved in or just considering implementing a Workplace Web Content Management system, you can use it to help guide your work. You need a basic understanding of the Web Content Management product to understand the topics discussed.

Filed in: WPS

This post originally appeared on an external website

by munish k gupta

Liferay Portal 4.0.0 has been released, with fine-grained permissioning, support for Websphere 6, and Weblogic 8.x, Alfresco integration, JSR-170 support, full-page caching, and more. It includes many bundled portlets and themes, and can be deployed on most application server/database combinations, including deployment in servlet containers (as opposed to a full application server).

Liferay also supports single-signon and user customization.

Filed in: Portals

This post originally appeared on an external website

by munish k gupta

You have built a Java Application. Now, as the application usage increases, the application needs to be scaled up. The only way to go is scale up (horizontal or vertical). Now the problem is that the application was never built to run in multiple JVM?s. There is no data synchronization, failover, session replication, distributed cache mechanism built in.

This is the need that the following products intend to fulfill.

? Tangosol Coherence
? JBoss Cache
? Gigaspaces
? GemStone
? Terracotta

These products allow you to distribute your data but still making the application believe that their is a single cache and single user sessions repository.

Filed in: J2EE

This post originally appeared on an external website

by munish k gupta

I was looking at products for scaling up an existing client/server kinda of application. I am posting here my findings on Terracotta.

TerraCotta

Allows the applications to be clustered to run on multiple JVM?s without changing source code and to get linear scalability and total fault tolerance. Terracotta injects clustering and caching into off-the-shelf JVMs.

How it works?
The technical approach that Terracotta uses is client/server, relies on byte code manipulation to track object changes, uses XML descriptors to define data synchronization points, and communicates object deltas. Theoretically, it should have efficiency advantages if you have a very large object graph and you frequently access that graph but only change small bits of information within it.

Technical Architecture
At the heart of the Terracotta architecture sits the Terracotta Server. Terracotta provides a set of infrastructure software installed on an inexpensive server. Multiple Terracotta Servers can be clustered together to make a high-availability hub shared by many application servers, even across dispersed geographies.
The server's primary job is to replicate state across application servers in the data center, manage connections from various clustered JVMs, and ensure coherence and consistency of application data. A single Terracotta server can provide clustering services for all of the Terracotta modules in use in the Data Center.
Existing servers within the data center need only have the Terracotta libraries installed on them. Terracotta libraries provide various 'modules' which communicate with the Terracotta server and enable a variety of clustering services.

Terracotta Fail over
The Terracotta Server can operate with a 'hot back-up' to meet availability requirements. In the event of a failure in the active Terracotta Server, the back-up will automatically take over transactions from various clustering clients and ensure that the replicated state is maintained. No state or cache information is lost in any application node. And, failover takes only seconds. Connected clients will notice only a brief pause during the failover process.

Advantages
? API Less ? One can simply plug in Terracotta (install the libraries), configure (edit appropriate configuration files), and play (start Terracotta and run the application)
? Provides a management console to provide metrics about connected clients, object/content caches

Disadvantages
? Requires an external server
? Supports session replication for WebLogic Server 8.1 and Tomcat 5.0
? Terracotta server required a hot backup for 24X7 applications

Filed in: J2EE

This post originally appeared on an external website

by munish k gupta


DB2 9 introduces pureXML? support, which means that XML data is stored and queried in its inherent hierarchical format. To query XML data, DB2 offers two languages, SQL/XML and XQuery. You can use XQuery and SQL separately, but you can also use XQuery embedded in SQL and vice versa. This gives you a lot of flexibility and options for querying your XML data.

Check out more here.

Filed in:
IBM

This post originally appeared on an external website

by munish k gupta


This collection of best practices, tips, and suggestions from the IBM? WebSphere? Portlet Factory development team is for developers who are either currently using or are expecting to use WebSphere Portlet Factory.

Developers with any level of experience can use Portlet Factory to quickly create complex portlets and integrate them with their WebSphere Portal based portals. As with the use of any tool, there are good practices for architectural, application structure, and solid implementation. This document provides guidance for those practices based on many person-years of experience. It also includes a section on selecting Builders to help you navigate the Builder palette.

Filed in:
WPS

This post originally appeared on an external website

by munish k gupta


Design your processes and set up your environments for developing, building, and deploying your portal. Learn how to control the source code and build components, ways to manage continuous integration and deployment to test environments, and how to deploy production release packages. Learn best practices, which tools to use, and strategies for creating you own processes.

Check out here.

Filed in:
WPS

This post originally appeared on an external website

by munish k gupta


I had talked about scaling the existing applications to work in a cluster environment here. Subsequently, I had posted on findings on the products available in the market Terracotta here.

As part of the same study, I came across this article, which details what all goes into building a strong, extensible, and flexible J2EE apps, tap into a WebSphere? cluster environment. This article describes what you need to consider when designing a Web-based application in a WebSphere Application Server cluster environment, including application file update and synchronization, serialization of session objects, and dynamic caching.

Filed in:
J2EE

This post originally appeared on an external website

by munish k gupta


The wsadmin scripting interface is a useful interface for managing your WebSphere? configuration, particularly when you need to automate tasks or perform other custom management. However, using Java Management Extensions (JMX) extends this powerful solution even further, allowing administrative capability to be directly embedded in the functions of your J2EE application.

This article explains how a wsadmin script works, and how it can be easily rewritten as a servlet to accomplish the same task in JMX. We briefly discuss how WebSphere maintains its configuration information in XML files, and how equivalent JMX code can be used to accomplish what is done by way of wsadmin. Using IBM Rational Application Developer, the example demonstrates how JMX can provide a valuable solution in advanced custom administration for system integrators, independent service vendors, and application developers.

Filed in:
WAS

This post originally appeared on an external website

by munish k gupta

JBoss Rules is the supported and branded release of the Drools project and part of the JBoss JEMS product range. Drools is an enhanced Rules Engine implementation, ReteOO, based on Charles Forgy's Rete algorithm tailored for the Java language.

Drools provides for Declarative Programming and is flexible enough to match the semantics of your problem domain with Domain Specific Languages.

Check out the same here.

Filed in: J2EE

This post originally appeared on an external website

by munish k gupta

JBoss SEAM 1.0 represents a redefinition of web application architecture that extends the POJO + annotation-driven and configuration-by-exception programming model of EJB 3.0 into the entire web application stack. It integrates Java EE 5 technologies like EJB 3.0, JSF and JMS into a unified programming model and narrows the semantic gap between the business domain and the Java programming language by deeply integrating technologies like jBPM for business process and user interaction modelling and Drools for management of business rules.

Seam 1.0 has the following new features:

* Seam Remoting - an AJAX-based remoting layer for EJB 3.0 components and JMS - allows client-side JavaScript to call EJB session beans directly
* Support for JSR-168 compliant portal engines such as JBoss Portal
* Elegant handling of internationalization and JSF messages via EL-based interpolation
* Helper components for JMS senders/publishers
* JSF tag library
* Redesigned XML-based configuration facility
* Support for integrating databinding architectures
* Eventing architecture for loosely-coupled components
* Seam Logging
* JBoss Cache integration for cluster-wide state replication
* Experimental Drools integration
* Compatibility with the Java EE 5 reference implementation
* Provides unique contextual state management architecture

Check out for more details here.

Filed in: J2EE

This post originally appeared on an external website

by munish k gupta

I was evaulating JMS vendors for our messaging needs. I could not find any one single source which details the various JMS vendors in the market. So, I have compiled a list of vendors which came across

Open Source Implementations
ActiveMQ
JBossMQ
Mantaray
OpenJMS

Others
Arjuna
FioranoMQ
iBus
Joram
Nirvana
SonicMQ
SwiftMQ

then you have the biggies of the messaging world.
IBM
TIBCO
WebLogic
Oracle
Sun

Filed in: J2EE

This post originally appeared on an external website

by munish k gupta

Every application has business logic. The logic might be some kind of validations or making calls in an order or doing some number crunching and spitting out the results. The business logic now can reside in multiple places. The business logic can reside from Presentation layer to business layer to the data layer ( even go down to Stored Procedures).

In my experience, what I have seen, the team's expertise decides where the business logic resides. If the team is strong in DB skills and DBA's have agreat say, the business logic ends up in database. If the GUI is very important and team does not much skills in n-tier architecture, the business logic ends up in presentation layer. If team has worked with some kind of EJB's or has object mapping experience (either Toplink or Hibernate ), the team will create a middle tier (either POJO's or EJB's) to handle the business logic.

I am not debating the merits and demerits of where the business logic should reside. What I am trying to say is, why it resides where it is resides.

This post originally appeared on an external website

by munish k gupta

India, despite boasting of a huge pool of IT professionals has a very dismal record when it comes to contributing actively to the open source software movement. I am trying to dig into some of the reasons why India has a poor record and what can be done to set the record straight.

Factors

  1. Socio/Economic factors:
    Some of the reasons why an individual in India wants to be in the IT profession
    • Excellent salaries (compared to any other field)
    • Chance to go out of country and even settle there
    • Great working conditions /White collar job
    • Social pressure
      • Parents push their children because IT is the hot field
      • In some regions in India, having a male child in IT field and who has been out of country, means a windfall for the family, as the boy commands a hefty premium (read as dowry)
    • Lack of opportunities in other fields

    Love of technology/programming is not a factor to join the IT profession. I am talking about 99 % of the individuals here. Once you enter the field, you may start take a liking, but the top motivation factors are always the one I mentioned above.

  2. Industry Organization:
    IT is relatively a new young field in India and is currently expanding at a very high rate. Since most of the work done, relates to providing bodies to the clients and able to leverage the cost arbitrage. What this means is, if the company wants to achieve a 20%-30% YoY growth, it needs to keep hiring more people. This means to manage this ever-growing infantry of programmers, you need to have an equal number of Senior Engineers, Project Leads , Technical Leads, Project Managers and so on. Now, what you do, you promote people.

    This means, an above average person can easily expect a career growth where in

    • 2-3 year experience, person is a Senior Engineer
    • 3-5 Years experience you become a Project/Technical lead
    • 5-7 years of experience you become a Project Manager/Architect.

    The designations might vary from company to company, but everyone is promising a similar kind of growth. If a person doesn?t get this growth internally, you jump companies, to get this career growth.

    Compare this to US, where a person works for an average of 6-7 years to move to a Senior System Analyst/Senior Developer role. People would have spent minimum of 12-14 years in the industry before they get promoted to Project Managers/Architects.

    In India, anybody who applies for a job and says I have spent 6 years in programming and has no people/project management experience will have a tough time finding a job. Some niche technical skill people might survive, but otherwise for general Java/Microsoft/DB skills, getting a decent job becomes difficult. As a result, in India, it is very difficult to find a 10 year experience person doing hard core programming.

    Now, can an individual with 3-4 years of IT industry who starts moving into more people management role be expected to be contributing towards the open source? I don?t think so.

    Companies have started offering two career tracks to people ? Technical and Management.HR will tom-tom about the same, but beyond a certain level, Technical people find lack of growth opportunities and have to eventually move to Management Track only.

    Companies like Red HAT has started scholarships to recognize and kick start the Open Source Program movement in India. Check out for details here and here.

  3. History:
    In the developed world, IT has been a 4 decade old phenomenon, where as IT has been a recent phenomenon in India. It?s only in the last 10-12 years; we are seeing the scorching pace at which the people are joining the IT industry. For any movement to come into mainstream the professional stream needs to embrace the soul of the movement and you need enough members to make a difference. Both of these factors, takes time.

    Open source usually takes time to grow and India lacks a long history.

How long it will take for India to start making contributions to Open Source?

My prediction:
I would say, give another 10 years. Why I say so?

  • By then we will have a big enough pool of people who have been in the IT industry for 15-20 years.
  • There would be enough opportunities for people to stick to the technical stream. Companies will start providing more meaningful technical roles. As companies start moving up the value chain, the demand for experienced technical people will start growing.
  • Opportunities in other fields will open up. Other professions will start paying well. Generation entering the field in next 10 years will do out of love of computers and technology. Money will not be the top most factors for this generation.
  • Salaries will hit a plateau. No promotions or job hops will lead to higher percentage of salaries increases.

This post originally appeared on an external website
Filed in: OpenSource

This discussion is closed to new replies.