Bharat Banate's Work Profile

View Bharat Banate's profile on LinkedIn

Wednesday, October 31, 2007

IT News:Democratising IT

A New Model For PC Penetration
INDIA has emerged as a global leader in the advance of information technology. Yet the country faces a fundamental challenge — building on its successes by enabling greater access to technology for its people. This will drive expanded economic growth and opportunity. Less than 3% of Indians own a personal computer — compared to nearly 8% of Chinese, almost 14% of Brazilians and more than 15% of Russians. Despite the very low penetration of computers in India, the impact has been profound. India is home to three of the world’s 10 biggest IT firms — Tata, Infosys, and Wipro, and already generates nearly $40 billion in revenues from its IT software and services sector. Nasscom forecasts this figure to grow by nearly 27% next year. It must be recognised that the benefits of broader IT use and deeper Internet access are substantial, and will be a catalyst for — not a result of — economic growth and modernisation. India is already benefiting from e-governance initiatives that deliver real-time tallying of results of the world’s largest elections and from technology-driven distance learning that brings the world’s educational resources to students without regard to location or economic background. But cost has been a major roadblock for broader technology adoption in India. Reducing taxes and tariffs is essential to facilitating broader access to technology and driving growth in the technology sectors. Global hardware exports are 43% of Chinese exports versus only 2.3% for India. India is clearly missing out on a big opportunity. If it doesn’t act soon, investments will go further into China and emerging countries such as Vietnam, instead of India.
Consider also that, in India, a typical desktop computer costs 44% of the average Indian’s annual wage. Brazil’s experience in supporting technology adoption is particularly instructive. Since reducing taxes on computer purchases two years ago, the PC market tripled, and more than two million families bought their first PC, making Brazil the world’s fourth-largest PC market. What was more important was the multiplier effect this had on the economy. Thousands of IT industry jobs were created and government revenue from the IT sector increased by 50%. But cost isn’t the only barrier. IT complexity will also threaten access to technology while increasing its cost and environmental impact. We are all members of what we at Dell call the ReGeneration — a new global movement concerned with the regeneration of not just our businesses but also our planet. Environmental protection efforts are improving, as reflected in the Nobel Prize jointly awarded to former US vice-president Al Gore and the Intergovernmental Panel on Climate Change headed by Rajendra Pachauri. And technology is an important part of these efforts. The future will bring even more benefits.
By 2020 microprocessors will run one thousand times as many computations per second as they do today. That will mean enormous gains in productivity and efficiency, giving people unimaginable power to access, organise, and transform information. Indian citizens will more fully benefit from this progress as government and industry leaders strengthen their cooperation. This will help create the conditions in which IT can flourish and reach all people, businesses, and institutions across the country. India plays a pivotal role in global IT. Technology users in the western world benefit every day from the work of bright, talented Indian employees and their constant innovation. But more than serving as the world’s software writer or back office, India is harnessing the productivity, efficiency, and innovation benefits of IT as a foundation for global economic competitiveness. I see industry working, with great commitment, with India’s government to build on this progress, and to help further democratize access to technology, so that more Indian citizens enjoy even more of technology’s benefits with an ever-decreasing impact on our environment. That is our shared responsibility. By harnessing these forces — the democratization and simplification of technology, we can make a positive impact not just on our economies, but also our planet.

(Michael Dell)

Sunday, October 28, 2007

Software Testing:Introduction

Introduction
Software Testing is the process of executing a program or system with the intent of finding errors. [Myers79] Or, it involves any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results. [Hetzel88] Software is not unlike other physical processes where inputs are received and outputs are produced. Where software differs is in the manner in which it fails. Most physical systems fail in a fixed (and reasonably small) set of ways. By contrast, software can fail in many bizarre ways. Detecting all of the different failure modes for software is generally infeasible. [Rstcorp]

Unlike most physical systems, most of the defects in software are design errors, not manufacturing defects. Software does not suffer from corrosion, wear-and-tear -- generally it will not change until upgrades, or until obsolescence. So once the software is shipped, the design defects -- or bugs -- will be buried in and remain latent until activation.

Software bugs will almost always exist in any software module with moderate size: not because programmers are careless or irresponsible, but because the complexity of software is generally intractable -- and humans have only limited ability to manage complexity. It is also true that for any complex systems, design defects can never be completely ruled out.

Discovering the design defects in software, is equally difficult, for the same reason of complexity. Because software and any digital systems are not continuous, testing boundary values are not sufficient to guarantee correctness. All the possible values need to be tested and verified, but complete testing is infeasible. Exhaustively testing a simple program to add only two integer inputs of 32-bits (yielding 2^64 distinct test cases) would take hundreds of years, even if tests were performed at a rate of thousands per second. Obviously, for a realistic software module, the complexity can be far beyond the example mentioned here. If inputs from the real world are involved, the problem will get worse, because timing and unpredictable environmental effects and human interactions are all possible input parameters under consideration.

A further complication has to do with the dynamic nature of programs. If a failure occurs during preliminary testing and the code is changed, the software may now work for a test case that it didn't work for previously. But its behavior on pre-error test cases that it passed before can no longer be guaranteed. To account for this possibility, testing should be restarted. The expense of doing this is often prohibitive. [Rstcorp]

An interesting analogy parallels the difficulty in software testing with the pesticide, known as the Pesticide Paradox [Beizer90]: Every method you use to prevent or find bugs leaves a residue of subtler bugs against which those methods are ineffectual. But this alone will not guarantee to make the software better, because the Complexity Barrier [Beizer90] principle states: Software complexity(and therefore that of bugs) grows to the limits of our ability to manage that complexity. By eliminating the (previous) easy bugs you allowed another escalation of features and complexity, but his time you have subtler bugs to face, just to retain the reliability you had before. Society seems to be unwilling to limit complexity because we all want that extra bell, whistle, and feature interaction. Thus, our users always push us to the complexity barrier and how close we can approach that barrier is largely determined by the strength of the techniques we can wield against ever more complex and subtle bugs. [Beizer90]

Regardless of the limitations, testing is an integral part in software development. It is broadly deployed in every phase in the software development cycle. Typically, more than 50% percent of the development time is spent in testing. Testing is usually performed for the following purposes:
To improve quality.
As computers and software are used in critical applications, the outcome of a bug can be severe. Bugs can cause huge losses. Bugs in critical systems have caused airplane crashes, allowed space shuttle missions to go awry, halted trading on the stock market, and worse. Bugs can kill. Bugs can cause disasters. The so-called year 2000 (Y2K) bug has given birth to a cottage industry of consultants and programming tools dedicated to making sure the modern world doesn't come to a screeching halt on the first day of the next century. [Bugs] In a computerized embedded world, the quality and reliability of software is a matter of life and death.

Quality means the conformance to the specified design requirement. Being correct, the minimum requirement of quality, means performing as required under specified circumstances. Debugging, a narrow view of software testing, is performed heavily to find out design defects by the programmer. The imperfection of human nature makes it almost impossible to make a moderately complex program correct the first time. Finding the problems and get them fixed [Kaner93], is the purpose of debugging in programming phase.

For Verification & Validation (V&V)
Just as topic Verification and Validation indicated, another important purpose of testing is verification and validation (V&V). Testing can serve as metrics. It is heavily used as a tool in the V&V process. Testers can make claims based on interpretations of the testing results, which either the product works under certain situations, or it does not work. We can also compare the quality among different products under the same specification, based on results from the same test.

We can not test quality directly, but we can test related factors to make quality visible. Quality has three sets of factors -- functionality, engineering, and adaptability. These three sets of factors can be thought of as dimensions in the software quality space. Each dimension may be broken down into its component factors and considerations at successively lower levels of detail. Table 1 illustrates some of the most frequently cited quality considerations.
Good testing provides measures for all relevant factors. The importance of any particular factor varies from application to application. Any system where human lives are at stake must place extreme emphasis on reliability and integrity. In the typical business system usability and maintainability are the key factors, while for a one-time scientific program neither may be significant. Our testing, to be fully effective, must be geared to measuring each relevant factor and thus forcing quality to become tangible and visible. [Hetzel88]

Tests with the purpose of validating the product works are named clean tests, or positive tests. The drawbacks are that it can only validate that the software works for the specified test cases. A finite number of tests can not validate that the software works for all situations. On the contrary, only one failed test is sufficient enough to show that the software does not work. Dirty tests, or negative tests, refers to the tests aiming at breaking the software, or showing that it does not work. A piece of software must have sufficient exception handling capabilities to survive a significant level of dirty tests.

A testable design is a design that can be easily validated, falsified and maintained. Because testing is a rigorous effort and requires significant time and cost, design for testability is also an important design rule for software development.

For reliability estimation
Software reliability has important relations with many aspects of software, including the structure, and the amount of testing it has been subjected to. Based on an operational profile (an estimate of the relative frequency of use of various inputs to the program [Lyu95]), testing can serve as a statistical sampling method to gain failure data for reliability estimation.

Software testing is not mature. It still remains an art, because we still cannot make it a science. We are still using the same testing techniques invented 20-30 years ago, some of which are crafted methods or heuristics rather than good engineering methods. Software testing can be costly, but not testing software is even more expensive, especially in places that human lives are at stake. Solving the software-testing problem is no easier than solving the Turing halting problem. We can never be sure that a piece of software is correct. We can never be sure that the specifications are correct. No verification system can verify every correct program. We can never be certain that a verification system is correct either.

Saturday, October 20, 2007

IT News:Cognizant pips Infy to acquire marketRx for $135 m

Cognizant pips Infy to acquire marketRx for $135 m
COGNIZANT Technology Solutions, an IT and BPO services company, said it will pay $135 million in cash to acquire New Jersey-based marketRx, a provider of analytics and related software services to life sciences companies. It’s the biggest acquisition made by Cognizant so far, and among the biggest in high-end business process outsourcing space recently.
In a deal structured on Thursday night, Cognizant is believed to have pipped IT services giant Infosys Technologies in bagging the deal. Earlier, ET reported that a host of suitors, including biggies Infosys and Wipro, had evinced interest in acquiring marketRx, one of the largest, independent offshore KPO businesses. Two investment banks, Mumbai-based Avendus and US-based William Blair, advised marketRx in sealing the deal.
This is the second high-profile dealmaking in the KPO space, after WNS snapped up Bangalore headquartered Marketics for $65 million earlier this year. Sources said while Infosys’ valuation of the marketRx was higher, Cognizant offered upfront cash pay out. It is believed that Infy’s offer had a substantial chunk of earnings payout, which essentially means a combination of upfront money and the remaining to be based on future performance.
The Nasdaq-listed Cognizant with predominant operations in India said the acquisition would help strengthen its analytics unit and offer more services to life sciences industry. The deal is expected to close in fourth quarter of 2007, and would be funded from its cash reserves. marketRx with per employee revenue of about $100,000 is projected to report revenues of over $40 million in 2007. It has 430 people, with 260 in Gurgaon, 160 in the US (four locations), and 10 in London.
Cognizant is expected to cross 55,000 people by end of this year and with revenue guidance of $2.11 billion in 2007. It’s manpower addition this year is expected to be over 16,000, 40 times the strength of marketRx. Cognizant president R Chandrasekaran said: “It is a ‘tuck-under’ acquisition that is consistent with our acquisition strategy of selectively acquiring businesses that complement or enhance our business model and value to our customers.
Cognizant president and CEO Francisco D’- Souza said: “This acquisition expands our capabilities in the analytics segment and broadens our service offerings for the life sciences industry while providing strong synergies with our existing business intelligence/data warehousing and CRM (customer relationship management) services.”
marketRx has a proven global delivery model for analytics, deep domain knowledge and proprietary analytics software platform, he said. “We expect to leverage these assets to establish a pre-eminent position in the fast-growing analytics market both in life sciences and other industries,” Mr D’Souza said in a statement.
marketRx president & CEO Jaswinder (Jassi) Chadha said: “The combination of our market leading position in the life sciences analytics segment and Cognizant’s strengths as a top global services player will allow us to expand our relationships with our life sciences clients by providing them with a broader range of outsourced services, and conversely enables us to extend our capabilities to other vertical markets.”

Friday, October 19, 2007

Mainframe:Mainframe Server Software Architectures

Mainframe Server Software Architectures

Purpose and OriginSince 1994 mainframes have been combined with distributed architectures to provide massive storage and to improve system security, flexibility, scalability, and reusability in the client/server design. In a mainframe server software architecture, mainframes are integrated as servers and data warehouses in a client/server environment. Additionally, mainframes still excel at simple transaction-oriented data processing to automate repetitive business tasks such as accounts receivable, accounts payable, general ledger, credit account management, and payroll. Siwolp and Edelstein provide details on mainframe server software architectures see [Siwolp 95, Edelstein 94].

Technical DetailWhile client/server systems are suited for rapid application deployment and distributed processing, mainframes are efficient at online transactional processing, mass storage, centralized software distribution, and data warehousing [Data 96]. Data warehousing is information (usually in summary form) extracted from an operational database by data mining (drilling down into the information through a series of related queries). The purpose of data warehousing and data mining is to provide executive decision makers with data analysis information (such as trends and correlated results) to make and improve business decisions.
a mainframe in a three tier client/server architecture. The combination of mainframe horsepower as a server in a client/server distributed architecture results in a very effective and efficient system. Mainframe vendors are now providing standard communications and programming interfaces that make it easy to integrate mainframes as servers in a client/server architecture. Using mainframes as servers in a client/server distributed architecture provides a more modular system design, and provides the benefits of the client/server technology.

Using mainframes as servers in a client/server architecture also enables the distribution of workload between major data centers and provides disaster protection and recovery by backing up large volumes of data at disparate locations. The current model favors "thin" clients (contains primarily user interface services) with very powerful servers that do most of the extensive application and data processing, such as in a two tier architecture. In a three tier client/server architecture, process management (business rule execution) could be off-loaded to another server.


Usage ConsiderationsMainframes are preferred for big batch jobs and storing massive amounts of vital data. They are mainly used in the banking industry, public utility systems, and for information services. Mainframes also have tools for monitoring performance of the entire system, including networks and applications not available today on UNIX servers [Siwolp 95].
New mainframes are providing parallel systems (unlike older bipolar machines) and use complementary metal-oxide semiconductor (CMOS) microprocessors, rather than emitter-coupler logic (ECL) processors. Because CMOS processors are packed more densely than ECL microprocessors, mainframes can be built much smaller and are not so power-hungry. They can also be cooled with air instead of water [Siwolp 95].

While it appeared in the early 1990s that mainframes were being replaced by client/server architectures, they are making a comeback. Some mainframe vendors have seen as much as a 66% jump in mainframe shipments in 1995 due to the new mainframe server software architecture [Siwolp 95].

Given the cost of a mainframe compared to other servers, UNIX workstations and personal computers (PCs), it is not likely that mainframes would replace all other servers in a distributed two or three tier client/server architecture.


MaturityMainframe technology has been well known for decades. The new improved models have been fielded since 1994. The new mainframe server software architecture provides the distributed client/server design with massive storage and improved security capability. New technologies of data warehousing and data mining data allow extraction of information from the operational mainframe server's massive storage to provide businesses with timely data to improve overall business effectiveness. For example, stores such as Wal-Mart found that by placing certain products in close proximity within the store, both products sold at higher rates than when not collocated.1

Costs and LimitationsBy themselves, mainframes are not appropriate mechanisms to support graphical user interfaces. Nor can they easily accommodate increases in the number of user applications or rapidly changing user needs [Edelstein 94].

AlternativesUsing a client/server architecture without a mainframe server is a possible alternative. When requirements for high volume (greater than 50 gigabit), batch type processing, security, and mass storage are minimal, three tier or two tier architectures without a mainframe server may be viable alternatives. Other possible alternatives to using mainframes in a client/server distributed environment are using parallel processing software architecture or using a database machine.

Complementary TechnologiesA complementary technology to mainframe server software architectures is open systems . This is because movement in the industry towards interoperable heterogeneous software programs and operating systems will continue to increase reuse of mainframe technology and provide potentially new applications for mainframe capabilities.

Sunday, October 14, 2007

How To: Burn a CD using Windows XP

You can burn a CD using Windows XP. No special CD-burning software required. All it needs is a CD-R or CD-RW disk, a machine running Windows XP and a CD-RW disk drive.

Step 1
Insert a blank CD-R or CD-RW disk into the CD-RW drive. A pop-up dialog box should appear after Windows loads the CD. (No pop-up dialog box? Open "My Computer" from your desktop and double-click on your CD-RW drive icon.)

Step 2
Double-click the option, "Open writable CD folder using Windows Explorer." You will see the files that are currently on the CD in your CD-RW drive. If you inserted a blank CD, you will see nothing.

Step 3
Click on the "Start" menu, and then "My Computer." (No "My Computer" on your start menu? It is likely you have the Windows Classic Start Menu enabled, and you will have to double-click "My Computer" on the desktop instead.) Navigate to the files that you wish to burn onto the CD.

Step 4
Single-click on the first file you wish to burn. Hold down the "Control" key and continue to single-click on other desired files until you have selected them all. Let go of the "Control" key. All your files should remain selected and appear blue. Right-click on any file and choose "Copy."

Step 5
Go back to the open window that displays the contents of your CD drive. Right-click in the white space and choose "Paste." The pasted icons will appear washed out, and they will have little black arrows on them indicating your next step.

Step 6
Choose "Write these files to CD" on the left-hand menu bar under "CD Writing Tasks." A wizard will start. First, name your CD. You can use up to 16 characters. After typing a name, click "Next." This will start the burning process. When the CD is finished burning, the CD will eject itself.

Step 7
Follow the remaining wizard prompts. It will ask if you want to burn the same files to another CD. If so, click "Yes, write these files to another CD." If not, click "Finish." You're done.

Tips & Warnings
Make sure to test your newly burned CD—try to open a few files to ensure that the process was done correctly.

Friday, October 12, 2007

Networking:Client/Server

Client/Server Software Architectures--An Overview

Purpose and Origin
The term client/server was first used in the 1980s in reference to personal computers (PCs) on a network. The actual client/server model started gaining acceptance in the late 1980s. The client/server software architecture is a versatile, message-based and modular infrastructure that is intended to improve usability, flexibility, interoperability, and scalability as compared to centralized, mainframe, time sharing computing.

A client is defined as a requester of services and a server is defined as the provider of services. A single machine can be both a client and a server depending on the software configuration. For details on client/server software architectures see Schussel and Edelstein [Schussel 96, Edelstein 94].

This technology description provides a summary of some common client/server architectures and, for completeness, also summarizes mainframe and file sharing architectures. Detailed descriptions for many of the individual architectures are provided elsewhere in the document.

Technical Detail
Mainframe architecture (not a client/server architecture). With mainframe software architectures all intelligence is within the central host computer. Users interact with the host through a terminal that captures keystrokes and sends that information to the host. Mainframe software architectures are not tied to a hardware platform. User interaction can be done using PCs and UNIX workstations. A limitation of mainframe software architectures is that they do not easily support graphical user interfaces (see Graphical User Interface Builders) or access to multiple databases from geographically dispersed sites. In the last few years, mainframes have found a new use as a server in distributed client/server architectures (see Client/Server Software Architectures) [Edelstein 94].

File sharing architecture (not a client/server architecture). The original PC networks were based on file sharing architectures, where the server downloads files from the shared location to the desktop environment. The requested user job is then run (including logic and data) in the desktop environment. File sharing architectures work if shared usage is low, update contention is low, and the volume of data to be transferred is low. In the 1990s, PC LAN (local area network) computing changed because the capacity of the file sharing was strained as the number of online user grew (it can only satisfy about 12 users simultaneously) and graphical user interfaces (GUIs) became popular (making mainframe and terminal displays appear out of date). PCs are now being used in client/server architectures [Schussel 96, Edelstein 94].

Client/server architecture. As a result of the limitations of file sharing architectures, the client/server architecture emerged. This approach introduced a database server to replace the file server. Using a relational database management system (DBMS), user queries could be answered directly. The client/server architecture reduced network traffic by providing a query response rather than total file transfer. It improves multi-user updating through a GUI front end to a shared database. In client/server architectures, Remote Procedure Calls (RPCs) or standard query language (SQL) statements are typically used to communicate between the client and server [Schussel 96, Edelstein 94].

The remainder of this write-up provides examples of client/server architectures.

Two tier architectures. With two tier client/server architectures (see Two Tier Software Architectures), the user system interface is usually located in the user's desktop environment and the database management services are usually in a server that is a more powerful machine that services many clients. Processing management is split between the user system interface environment and the database management server environment. The database management server provides stored procedures and triggers. There are a number of software vendors that provide tools to simplify development of applications for the two tier client/server architecture [Schussel 96, Edelstein 94].

The two tier client/server architecture is a good solution for distributed computing when work groups are defined as a dozen to 100 people interacting on a LAN simultaneously. It does have a number of limitations. When the number of users exceeds 100, performance begins to deteriorate. This limitation is a result of the server maintaining a connection via "keep-alive" messages with each client, even when no work is being done. A second limitation of the two tier architecture is that implementation of processing management services using vendor proprietary database procedures restricts flexibility and choice of DBMS for applications. Finally, current implementations of the two tier architecture provide limited flexibility in moving (repartitioning) program functionality from one server to another without manually regenerating procedural code. [Schussel 96, Edelstein 94].

Three tier architectures. The three tier architecture (see Three Tier Software Architectures) (also referred to as the multi-tier architecture) emerged to overcome the limitations of the two tier architecture. In the three tier architecture, a middle tier was added between the user system interface client environment and the database management server environment. There are a variety of ways of implementing this middle tier, such as transaction processing monitors, message servers, or application servers. The middle tier can perform queuing, application execution, and database staging. For example, if the middle tier provides queuing, the client can deliver its request to the middle layer and disengage because the middle tier will access the data and return the answer to the client. In addition the middle layer adds scheduling and prioritization for work in progress. The three tier client/server architecture has been shown to improve performance for groups with a large number of users (in the thousands) and improves flexibility when compared to the two tier approach. Flexibility in partitioning can be a simple as "dragging and dropping" application code modules onto different computers in some three tier architectures. A limitation with three tier architectures is that the development environment is reportedly more difficult to use than the visually-oriented development of two tier applications [Schussel 96, Edelstein 94]. Recently, mainframes have found a new use as servers in three tier architectures (see Mainframe Server Software Architectures).

Three tier architecture with transaction processing monitor technology. The most basic type of three tier architecture has a middle layer consisting of Transaction Processing (TP) monitor technology (see Transaction Processing Monitor Technology). The TP monitor technology is a type of message queuing, transaction scheduling, and prioritization service where the client connects to the TP monitor (middle tier) instead of the database server. The transaction is accepted by the monitor, which queues it and then takes responsibility for managing it to completion, thus freeing up the client. When the capability is provided by third party middleware vendors it is referred to as "TP Heavy" because it can service thousands of users. When it is embedded in the DBMS (and could be considered a two tier architecture), it is referred to as "TP Lite" because experience has shown performance degradation when over 100 clients are connected. TP monitor technology also provides

* the ability to update multiple different DBMSs in a single transaction
* connectivity to a variety of data sources including flat files, non-relational DBMS, and the mainframe
* the ability to attach priorities to transactions
* robust security

Using a three tier client/server architecture with TP monitor technology results in an environment that is considerably more scalable than a two tier architecture with direct client to server connection. For systems with thousands of users, TP monitor technology (not embedded in the DBMS) has been reported as one of the most effective solutions. A limitation to TP monitor technology is that the implementation code is usually written in a lower level language (such as COBOL), and not yet widely available in the popular visual toolsets [Schussel 96].

Three tier with message server. Messaging is another way to implement three tier architectures. Messages are prioritized and processed asynchronously. Messages consist of headers that contain priority information, and the address and identification number. The message server connects to the relational DBMS and other data sources. The difference between TP monitor technology and message server is that the message server architecture focuses on intelligent messages, whereas the TP Monitor environment has the intelligence in the monitor, and treats transactions as dumb data packets. Messaging systems are good solutions for wireless infrastructures [Schussel 96].

Three tier with an application server. The three tier application server architecture allocates the main body of an application to run on a shared host rather than in the user system interface client environment. The application server does not drive the GUIs; rather it shares business logic, computations, and a data retrieval engine. Advantages are that with less software on the client there is less security to worry about, applications are more scalable, and support and installation costs are less on a single server than maintaining each on a desktop client [Schussel 96]. The application server design should be used when security, scalability, and cost are major considerations [Schussel 96].

Three tier with an ORB architecture. Currently industry is working on developing standards to improve interoperability and determine what the common Object Request Broker (ORB) will be. Developing client/server systems using technologies that support distributed objects holds great pomise, as these technologies support interoperability across languages and platforms, as well as enhancing maintainability and adaptability of the system. There are currently two prominent distributed object technologies:

* Common Object Request Broker Architecture (CORBA)
* COM/DCOM (see Component Object Model (COM), DCOM, and Related Capabilities).

Industry is working on standards to improve interoperability between CORBA and COM/DCOM. The Object Management Group (OMG) has developed a mapping between CORBA and COM/DCOM that is supported by several products [OMG 96].

Distributed/collaborative enterprise architecture. The distributed/collaborative enterprise architecture emerged in 1993 (see Distributed/Collaborative Enterprise Architectures). This software architecture is based on Object Request Broker (ORB) technology, but goes further than the Common Object Request Broker Architecture (CORBA) by using shared, reusable business models (not just objects) on an enterprise-wide scale. The benefit of this architectural approach is that standardized business object models and distributed object computing are combined to give an organization flexibility to improve effectiveness organizationally, operationally, and technologically. An enterprise is defined here as a system comprised of multiple business systems or subsystems. Distributed/collaborative enterprise architectures are limited by a lack of commercially-available object orientation analysis and design method tools that focus on applications [Shelton 93, Adler 95].

Usage Considerations
Client/server architectures are being used throughout industry and the military. They provide a versatile infrastructure that supports insertion of new technology more readily than earlier software designs.

Maturity
Client/server software architectures have been in use since the late 1980s. See individual technology descriptions for more detail.

Costs and Limitations
There a number of tradeoffs that must be made to select the appropriate client/server architecture. These include business strategic planning, and potential growth on the number of users, cost, and the homogeneity of the current and future computational environment.

Dependencies
If a distributed object approach is employed, then the CORBA and/or COM/DCOM technologies should be considered (see Common Object Request Broker Architecture and Component Object Model (COM), DCOM, and Related Capabilities).

Alternatives
Alternatives to client/server architectures would be mainframe or file sharing architectures.

Complementary Technologies
Complementary technologies for client/server architectures are computer-aided software engineering (CASE) tools because they facilitate client/server architectural development, and open systems (see COTS and Open Systems--An Overview) because they facilitate the development of architectures that improve scalability and flexibility.

Thursday, October 11, 2007

IT News:Talent pool may raise biz for IT product cos


Talent pool may raise biz for IT product cos

WITH India becoming the global IT services hub, leading product companies including Oracle, Sun Micro systems, IBM and Microsoft are sharpening their focus on the education sector to promote their technologies and bolster revenues. These companies are actively forging ties with educational and training institutes to develop a ready-touse talent pool. The partnerships could indirectly bring in more business, say analysts.
The programmers are designed to help companies position their products in the global marketplace. Availability of talent pool could be a differentiating factor in a closely-contested deal. In a multi-million dollar deal, when a client is selecting a product partner, they will look at market capabilities, mainly the number of professionals who have trained on the product technologies. “With more and more businesses outsourcing their services to India, it is important for major product development companies to create a large tech-savvy resource pool here,” said Gartner principal analyst Kamlesh Bhatia.
IBM, for instance, has imparted training on open standards-based technologies to more than 80,000 students across 745 colleges in India in 2006. “As part of IBM Academic Initiative, we offer workshops and certification programmes on various technologies. The aim is to develop strategic linkages with universities and colleges and to assist them in developing talent pool,” says IBM programme director Amol Mahamuni.
Microsoft India has also partnered with the Board for Information Technology Education Standards (BITES) in Karnataka to address the training needs of students in BITES member institutes.
TALENT CONTEST
IT cos are tying up with educational & training institutes to develop ready-to-use talent pool Availability of talent pool could be a differentiating factor in a closely-contested deal IBM has imparted training on open standards-based technologies to 80,000 students across 745 colleges in India

What is web content management system?

Web content management systems are often used for storing, controlling, versioning, and publishing industry-specific documentation such as news articles, operators' manuals, technical manuals, sales guides, and marketing brochures. A content management system may support the following features:

* Import and creation of documents and multimedia material
* Identification of all key users and their content management roles
* The ability to assign roles and responsibilities to different content categories or types.
* Definition of the content workflow tasks, often coupled with event messaging so that content managers are alerted to changes in content.
* The ability to track and manage multiple versions of a single instance of content.
* The ability to publish the content to a repository to support access to the content. Increasingly, the repository is an inherent part of the system, and incorporates enterprise search and retrieval.
* Some content management systems allow the textual aspect of content to be separated to some extent from formatting. For example the CMS may automatically set default color, fonts, or layouts.

Wednesday, October 10, 2007

CMS: Content Management System

A Content Management System (CMS) is a software system used for content management. Content management systems are deployed primarily for interactive use by a potentially large number of contributors.Other related forms of content management are listed below.

The content managed includes computer files, image media, audio files, electronic documents and web content. The idea behind a CMS is to make these files available inter-office, as well as over the web. A Content Management System would most often be used as an archive as well. Many companies use a CMS to store files in a non-proprietary form. Companies use a CMS to share files with ease, as most systems use server-based software, even further broadening file availability. As shown below, many Content Management Systems include a feature for Web Content, and some have a feature for a "workflow process."

"Work flow" is the idea of moving an electronic document along for either approval, or for adding content. Some Content Management Systems will easily facilitate this process with email notification, and automated routing. This is ideally a collaborative creation of documents. A CMS facilitates the organization, control, and publication of a large body of documents and other content, such as images and multimedia resources.

A web content management system is a content management system with additional features to ease the tasks required to publish web content to web sites.

Tuesday, October 9, 2007

PHP : What is smarty?

Smarty is a web template system written in PHP. Smarty is primarily promoted as a tool for separation of concerns, which is a common design strategy for certain kinds of applications.

Smarty generates web content by the placement of special Smarty tags within a document. These tags are processed and substituted with other code.

Tags are directives for Smarty that are enclosed by template delimiters. These directives can be variables, denoted by a dollar sign ($), functions, or logical or control flow statements. Smarty allows PHP programmers to define functions that can be accessed using Smarty tags.

Smarty is intended to simplify compartmentalization, allowing the presentation of a web page to change separately from the back-end. Ideally, this eases the costs and efforts associated with software maintenance. Under successful application of this development strategy, designers are shielded from the back-end coding, and PHP programmers are shielded from the presentation coding.

Smarty supports several high-level template programming features, including:

* regular expressions
* Control flow statements, foreach, while
* if, elseif, else
* variable modifiers - For example {$variable|nl2br}
* user created functions
* mathematical evaluation within the template

along with other features. There are other template engines that also support these features. Smarty templates are often incorporated into existing PHP web applications to some extent. More often it is used where a web application or a website has a theme system built into it, where the templates can be changed from theme to theme.

Sunday, October 7, 2007

Cellphone:Nokia's aeon "full surface screen" cellphone concept




Nokia's Aeon: A concept phone that combines two touch-sensitive panels mounted on a fuel-cell power pack.keypad. Each of the panels are capable of being used independently. The touch screen displays all buttons that are virtual, so in one situation one panel could operate as the display, the other as the Nokia also establishes a new wireless standard with wibree, basically an upgraded bluetooth which would allow the Aeon to be a thin-client, farming out processing and storage.

The Aeon seems to be typical razer-thin candy bar form factor cell phone with no actual buttons. That can change into any kind of menu, button and keypad with a simple touch. The touch screen method brings up a ton of quirky problems like causing damage to the display with those pointy thumbs of yours.

The concept phone, dubbed Aeon, combines two touch-sensitive panels mounted on a fuel-cell power pack. The handset's connectivity and electronics are built into the panels to allow them to be used independently. When assembled, one panel would operate as the display, the other as the keypad. Since the buttons are entirely virtual, Aeon can flip instantly between a numeric pad for dialling, a text-entry pad for messaging and a media-player controller.

Nokia's vision of wearable technology users could wear the lightweight panels as a badge, or connected to a wrist strap. The most prominent design feature of aeon is a touchscreen that stretches over the full surface area of the phone, similar to benq siemens's black box concept phone .

read on nokia : click here to read more

full story:click here

Monday, October 1, 2007

SAP:SAP Customer Relationship Management:

What is SAP?
SAP, started in 1972 by five former IBM employees in Mannheim, Germany, states that it is the world's largest inter-enterprise software company and the world's fourth-largest independent software supplier, overall.
The original name for SAP was German: Systeme, Anwendungen, Produkte, German for "Systems Applications and Products." The original SAP idea was to provide customers with the ability to interact with a common corporate database for a comprehensive range of applications. Gradually, the applications have been assembled and today many corporations, including IBM and Microsoft, are using SAP products to run their own businesses.
SAP applications, built around their latest
R/3 system, provide the capability to manage financial, asset, and cost accounting, production operations and materials, personnel, plants, and archived documents. The R/3 system runs on a number of platforms including Windows 2000 and uses the client/server model. The latest version of R/3 includes a comprehensive Internet-enabled package.
SAP has recently recast its product offerings under a comprehensive Web interface, called mySAP.com, and added new
e-business applications, including customer relationship management (CRM) and supply chain management (SCM).
As of January 2007, SAP, a publicly traded company, had over 38,4000 employees in over 50 countries, and more than 36,200 customers around the world. SAP is turning its attention to small- and-medium sized businesses (
SMB). A recent R/3 version was provided for IBM's AS/400 platform.
SAP Customer Relationship Management:


Features & Functions

SAP Customer Relationship Management (SAP CRM) includes features and functions to support core business processes in the following areas:
Marketing – Analyze, plan, develop, and execute all marketing activities through all customer interaction points. This central marketing platform empowers marketers with complete business insights – enabling you to make intelligent business decisions and to drive end-to-end marketing processes. Quickly deploy marketing functionality in an on-demand model and transition to SAP CRM as business needs evolve.
Sales – Maintain focus on productive activity to acquire, grow, and retain profitable relationships with functionality for sales planning and forecasting, territories, accounts, contacts, activities, opportunities, quotations, orders, product configuration, pricing, billing, and contracts. Quickly deploy sales management functionality in an on-demand model and transition to SAP CRM as business needs evolve.
Service – Drive service revenue and profitability with support for service sales and marketing; service contract management; field service; e-service; workforce management; and channel service. Call centers, field service, and e-service provide various flexible delivery options. Quickly deploy service functionality in an on-demand model and transition to SAP CRM as business needs evolve.
Partner channel management – Attain a more profitable and loyal indirect channel by managing partner relationships and empowering channel partners. Improve processes for partner recruitment, partner management, communications, channel marketing, channel forecasting, collaborative selling, partner order management, channel service, and analytics for partners and channel managers.
Interaction center – Maximize customer loyalty, reduce costs, and boost revenue by transforming your interaction center into a strategic delivery channel for marketing, sales, and service efforts across all contact channels. Activities such as telemarketing, telesales, customer service, HR and IT help desk, and interaction center management are supported.
Web channel – Increase sales and reduce transaction costs by turning the Internet into a valuable sales, marketing, and service channel for businesses and consumers. Increase profitability and reach new markets with functionality for e-marketing, e-commerce, e-service, and Web channel analytics. Deploy these capabilities directly against SAP ERP or with SAP CRM as a fully integrated customer channel.
Business communications management – Manage inbound and outbound contacts across multiple locations and communications channels effectively and efficiently. By integrating multichannel communications with your customer-facing business processes, you can provide your customers and partners with a smooth, consistent experience across all avenues of contact, including voice, text messaging, Web contacts, and e-mail.

For More Information Click Here.