Archive for the ‘Uncategorized’ Category

Integration with SAP

Tuesday, July 8th, 2008

Seamless integration across business applications has always been a critical area of interest for any organization. The criticality of application integration is obvious from the fact that this is often a critical factor in purchase decision making.

SAP recommends the following technologies for integration:
1. SAP BAPI (Business Application Programming Interfaces)
2. Remote callable function modules (RFMs) that have been released for customer / external use
3. IDocs (Intermediate Documents) provided by SAP, that are sent or received by mySAP Business Suite components
4. Data Transfer Programs provided by SAP

1. SAP BAPI (Business Application Programming Interfaces)

Business Application Programming Interfaces (BAPIs) are standard SAP interfaces that enable software vendors to integrate their software into the mySAP Business Suite. BAPIs are technically implemented using RFC (Remote Function Call) enabled function modules inside SAP systems.

BAPIs are defined in the Business Object Repository (BOR) as methods of to SAP business objects that perform specific business tasks. They allow integration at business level, not technical level. This makes it much easier to find suitable BAPIs compared to non-BAPI based function modules.

Once SAP has released a BAPI, its interface definitions and parameters will remain stable in the long term, which means third-party application programs will not be affected by changes to the underlying SAP software or data. If upward-compatible enhancements are made to the BAPIs, the integration of the existing applications is not affected. If incompatible changes to the BAPI become necessary, SAP will create a new BAPI and mark the old BAPI as “obsolete”. Obsolete BAPIs are guaranteed to work at least in two subsequent functional releases, starting with the one in which they are declared obsolete. This gives developers approximately two years, depending on SAPs release cycle, to change their existing integration from using the obsolete BAPI to the usage of the new BAPI.

2. Remote Function Call
The SAP development environment supports several ways of structuring software. ABAP function modules are equivalent to what most programming languages call “functions”. The SAP system contains thousands of function modules - for example more than 110,000 in SAP R/3 release 4.6C.

Only a subset of those can be called from external systems using a protocol called Remote Function Call (RFC). RFC allows for remote calls between two SAP systems (for example SAP R/3 and SAP BW) or between an SAP system and a non-SAP system. These remotely callable functions are called RFC-enabled function modules or RFMs in short. SAP R/3 release 4.6 C for example contains more than 10,000 RFMs. They can have import and export parameters to send and receive data between systems. Only RFMs with a ‘released for customer/released for external use’ status will remain stable in long term. Only these should be used for third-party integration projects and are eligible for interface certification. As the special set of RFMs that are linked as methods of the business objects in the SAP systems, BAPIs are explicitly released for customer usage.

3. Intermediate Documents
Intermediate documents (IDocs) were originally invented by SAP to support Electronic Data Interchange (EDI) in a generic fashion. Later, IDocs were also used in the SAP Application Link Enabling (ALE) technology as data containers, which allow exchange of business information between an SAP system and other SAP or non-SAP systems.

IDocs are based on a hierarchical, tree-like segment structure. The syntax for each IDoc type is defined in the SAP system. IDocs can be used in the following business scenarios: ? ?Application Link Enabling (ALE): Communication between logical systems (intra-company relations).

Logical systems can be either SAP systems or non-SAP systems. ALE distribution models are based on message types and BAPIs that indicate the appropriate IDoc types. ? ?Electronic Data Interchange (EDI): Communication between SAP systems and the 3rd party EDI subsystem which is typically connected to an EDI VAN (inter-company relation).

IDocs are created when message types and (object) methods are distributed. The message type is the semantic information which identifies the usage of business data. The IDoc type defines the syntactical format in which the data for a specific business process is transferred.

4. Data Transfer Programs

Some SAP applications provide data transfer programs that can be used to transfer data into or out of SAP systems. The Data Transfer Workbench is a tool that supports the transfer of data into the SAP system with these data transfer programs. The Data Transfer Workbench is particularly useful for business objects with large data volumes. It guarantees that data is transferred efficiently and ensures that data in the SAP system remains consistent. The data transfer is performed in a batch-like fashion.

IT INDUSTRY IN AHMEDABAD, GUJARAT, INDIA

Friday, June 27th, 2008

Located on the banks of river Sabarmati, Ahmedabad is the largest city in the whole state of Gujarat. From the year 1960 to 1970, it served as the capital city of Gujarat. However, later on, the capital was shifted to the Gandhinagar city. It was founded in the year 1411 by Sultan Ahmed Shah. It is owing to this reason that, sometimes, it is also referred to as the city of Ahmed Shah and hence the name Ahmedabad. Ahmedabad was incorporated into the Bombay Presidency during the British rule but remained the most important city in the Gujarat region. Over a period of time, Ahmedabad established itself as the home of textile industry and earned the nickname of “The Manchester of the East.”
 
Ahmedabad is the hub of trade and commerce in Gujarat. The commercial importance of Ahmedabad makes the city an important travel destination in India, besides being home to a number of important industries. Ahmedabad also has a number of majestic monuments, world class institutes of learning to name a few- IIM, PRL, ISRO, NID, and many more that remind us of the great historical and cultural past of the city.

A rising centre of higher education, information technology and scientific industries, Ahmedabad continues to remain one of the important cultural and commercial centers of western India. With one of the best power supply in the country and the cheapest real estate Ahmedabad is the bus to ride for setting up of any IT related industry. Well connected nationally and internationally Ahmedabad poses to be the next generation mega city of India.

During the last quarter of this century Information Technology (IT) has transformed the way of human life as no other technology has. IT has potential of converting our society into a truly knowledge based society. IT also gives us a chance in ensuring that such an evolution leads to an equitable society. Now, there is no area of human life, which is not affected by information technology in one way or the other. To ensure that people of the State of Gujarat reap the benefits of this epoch making development, it is imperative that the State Government evolves a coordinated strategy which could affect all the facets of life of citizens of the State.

It is very clearly understood that IT is not an end in itself but means to provide better quality of life to the citizens of the State. It does not aim at merely automating existing process but the target is to use IT to improve overall organizational efficiency and pass the benefits to the citizens of the State. The GoG has initiated several measures to boost IT in Gujarat which has been stated below:

Overall Growth of IT Sector in Gujarat
* Creating enormous employment opportunities by training and developing skilled manpower
* Facilitating information outlets at the doorstep of a common man
* Making government - citizen interface more effective, efficient and transparent
* For imparting education, Gujarat Institute of Information Technology being set up at Gandhinagar
* Setting high-tech Infocity with facilities of satellite earth station in Gandhinagar with hubs at Ahmedabad and Baroda 

Over all IT growth in the state of Gujarat
To create enormous new employment opportunities in the state; train and develop skilled manpower in IT; facilitate information outlets at the doorstep of the common man the Government has set up IT Department for implementation of IT Policy.

* Information strategy development
* IT architecture design including network and communication
* Program and project management
* Contract support system
* Internet/intranet services
* Computer and communication security
* Systems audit
* Disaster recovery
* Outsourcing including actual running of system
* Training
* Testing

Private sector participation
As information technology is likely to emerge as a major infrastructure for the State, participation of private sector is extremely important, both from the point view of attracting additional resources and introducing sufficient competition so that the focus on customer is not missed out in any case. Private sector would participate in (1) creation of ‘information corridor’ (2) in setting up of information kiosks (3) provision of services for creating of database oriented services.

Gujarat government has initiated several steps to enable private participation under state IT policy, to set up of high-tech cities, IT training and educational institutions which, in turn, will create enormous job opportunities and economic development of the state. IT thrust in the public service would essentially assume existence of a very strong IT industry in the State. It is the endeavor of the Government to help create new job opportunities for the youth of the State in this sunrise industry. It would only be possible when there is extensive use of computer for the public services, in businesses and in homes. Location of strong IT industry in the State would also give a fillip to export of IT related services and products.  GOG has introduced multiple Fiscal Incentives for IT products, services and software products where the state would give a special concessional sales tax treatment. To boost investment a State venture capital for development of IT services, IT software and IT products has also been set up. As State Government wishes that the IT industry takes lead in the area of IT products i.e. hardware as well, therefore, it is important that these products are globally competitive. In order to achieve this, dedicated air cargo terminal would be essential for swift movement of goods both for export and import.

Outsourcing of Information Technology Projects to Ahmedabad, India

Indian software services firms have been thriving on a worldwide outsourcing boom as international companies try to cut costs at home.

A large pool of English-speaking engineers and low wages have helped them attract outsourcing deals over the past decade in India, which churns out about 350,000 graduate engineers and 2.3 million other graduates every year.

But wage inflation and high attrition rates are a concern for services firms in India, where specialists demand for programmers and IT is fast outstripping supply.

Amidst ongoing apprehension on security and data safeguard that have surfaced in the business procedure outsourcing space, Bangalore, Hyderabad, Mumbai and Ahmedabad have emerged as “no-risk” locations in some surveys. These are also better in terms of the cost needed to alleviate risks. In simple terms, a company sets a better chance to take the edge off risk in a cost-effective manner if it is located in these cities.

The globe is discovering the fact that India is a super power when it comes to developing IT solutions. Swept by the current and the latest trend of outsourcing to India, we find that with a large no of CMM Level 5 companies and outsourcing centers of fortune 500 companies like Microsoft, Oracle, Morgan Stanley, Wal-Mart, AT&T, General Motors, Sony, Swissair, United Airlines, Philips, IBM, Lucas India, PepsiCo, Schneider Electric is a logical choice for outsourcing with the world’s largest pool of scientific and technical talent.

India is now a reputable IT Outsourcing Destination. The country, which has received the distinction of being the world’s most preferred software-outsourcing destination, sketches its strengths from the following:

• Established Offshore outsourcing Model
• Reliable and most advanced source of software expertise
• More than 5 million technical workers
• Software Industry worth $9 Billion
• Second Largest English speaking Community
• Supportive Government Policy for IT and Communication Industry

Reasons for outsourcing to Ahmedabad, India:

* Caliber Of The Computer Engineers

The main reason behind the glittering success of Indian IT market in the world is the unyielding and continuous force of computer engineers from highly professional universities and colleges.

* Hard Working, Intelligent Human Resource

With the second largest population, India has easy availability of highly qualified and technically skilled English speaking computer professionals who play a key part in the field of Information technology

* Convincing Cost Efficiency Of IT Outsourcing In India

Extensive gap between the personal cost in India and developed countries, India offers convincing economical benefits to the persons who want to exploit the advantage of offshore outsourcing.

* Guaranteed International Quality

With large number of the world’s CMM/ ISO Level having one of the world’s largest and best pools of scientific and technical talent, India can offer standard international quality.

* Stable Government Support And Easy Legal Proceeding

Indian government keeps stable policies, economy, taxation, telecom, industrial development for Information Technologies. The government provides evidence to be a grand support for software firms by further presenting all the basic facilities necessary for an outsourcing company to prosper Information Technology.

* Effective Telecommunication, Power & Real Estate Infrastructure

One of the cheapest real estate globally with continuous feed of electricity, excellent telecom network facility, ISP, and cellular networks are available all over the country. India delights in the steadfast satellite and submarine communication links that facilitate good band connectivity with the rest of the world. Thus companies engaged in IT outsourcing to India, can be in continuous touch with the vendors without any connection impediments.
 

Moving from Visual Basic 6.0 to .NET

Wednesday, June 25th, 2008

1 INTRODUCTION
Many organizations have already adopted, or are currently considering adopting, the .NET Framework as their platform of choice for strategic software development. However, in the real world, new versions of languages and new platforms present significant challenges to those adopting these newer technologies both for new development and for migration of existing applications. This White Paper examines some of the issues associated with migrating applications from Microsoft Visual Basic 6.0 (VB6.0) to Microsoft .NET languages. It examines the options for migration and offers some guidelines on best practices that can help organizations to successfully migrate their applications to the .NET world.
2 AN OVERVIEW OF .NET
The .NET Framework is an integral Windows component for building and running the next generation of software applications and Web services. The .NET Framework:
• Supports over 20 different programming languages – with 4 core languages supplied by Microsoft namely C#.NET, VB.NET, C++ .NET and J#.NET.
• Manages much of the plumbing involved in developing software, enabling developers to focus on the code associated with the core business logic.
• Makes it easier to build, deploy, and administer secure, robust, and high-performing applications.

The .NET Framework is composed of the Common Language Runtime (CLR) and a unified set of class libraries. Developers can use the .NET language of their choice for code creation and debugging. When compiled with a language specific compiler in the .NET Framework, the language-specific code gets translated into language-neutral and CPU-independent Microsoft Intermediate Language (MSIL).
Before this code can be run, it must be converted by the .NET CLR to CPU-specific code; which is usually done by a just-in-time (JIT) compiler converting MSIL to native code only when actually required.
3 THE BUSINESS CASE FOR MIGRATION
• Increased Productivity and Reduced Maintenance Costs
• Increased supportability
• Web enablement
• Take advantage of the additional features of .NET (Stability, Better organization, Better inline documentation, new features, Security, Deployment etc.)
• Adopt full Object-Orientation (OO)
4 Type of Migration – Porting and Re-factoring
Once an organization has taken the decision to move its legacy code to the .NET Framework, it must decide on its approach to the process. Although individual cases will vary and in most cases a blended approach will be inevitable, the two broad approaches that can be taken are porting and re-factoring.
5 PORTING TO THE .NET FRAMEWORK
5.1 Preparation
Preparatory work for porting concentrates on assessing the suitability of the code base for porting and on identifying problem areas where 1-for-1 code conversion will not be possible. These situations will require intervention with some redesign and code rework and examining the code base from this perspective allows an assessment the level of the rework likely and may suggest that the re-factoring approach would ultimately require less effort than the port.
In the process of assessing the code base there may be an opportunity to prepare it for processing by the VB Upgrade Wizard. Very often large existing VB projects have macro utilities to manage the creation and insertion of standard code constructs such as error-handling and logging. It may be possible to leverage these in order to remove or alter code before it is upgraded to reduce the time it takes to process the code and reduce the size of the issue report it produces.
5.2 The VB Upgrade Wizard
Microsoft Visual Studio .NET offers a VB upgrade wizard to assist in the migration of earlier VB code to VB.NET. This tool attempts to convert code from VB to VB.NET, provides an upgrade report listing any problems encountered and annotates the converted code with comments on conversion issues and recommendations. It also inserts To Do items into the Visual Studio Task List indicating where additional changes need to be made.
5.3 Porting Manually
In the cases where developers responsible for porting code do not want to use the VB Upgrade Wizard, the only alternative is to port the code manually. Code must be examined line-by-line and converted to a .NET equivalent implementation where possible and any unavoidable workarounds hand-coded to suit the particular circumstances and requirements of the code being converted. Whereas the VB Upgrade Wizard might make calls to VB compatibility DLLs as a result of code ambiguities that it has problems interpreting or take the ‘path of least resistance’ in converting, the porting developer may be able to make better choices in these circumstances eliminating or at least reducing the need to retain a reliance on “old VB”.
5.4 Pros
• VB Upgrade Wizard provides a quick and largely automated route to porting code leaving the developer to fix the aspects that cannot be ported automatically using the guidance provided by the report produced as part of the upgrade process.
• The leg-work of repetitive code conversion can safely be left to the tested functionality of the wizard whilst the coder can concentrate on the ‘tricky’ bits.
• In theory assessing code for line-by-line porting has less dependence on a need for a strongly documented design of the existing system – as the structure will not change there is less emphasis on understanding of the design than on understanding of VB and COM fundamentals such as finalization and data access.
• In principle the code produced will require less testing and review because of its closeness to the original code base and the fact that much of the ported code continues to use VB compatibility DLLs means that the emphasis is on safety and workability.
5.5 Cons
• The VB Upgrade Wizard necessarily takes the path that is safest and the one of least resistance which is unlikely to be the most efficient or logical. The resulting code base produced by the wizard is almost always a hybrid of .NET code and calls to VB compatibility libraries, making the move to .NET a nominal one to a large extent.
• Whether arrived at via the Upgrade Wizard or through manual porting, the introduction of a dependency on COM interoperability and older VB libraries may hamper future efforts to move the code base further into the .NET world. Additionally the reliance of older VB6.0 libraries introduces a risk for code support relying as it does on their continued support by Microsoft.
• Many of the business case drivers identified in our examination of the case for migration are not addressed by porting code: its essential internal structure and architecture remain the same meaning that its supportability, maintainability and overall code quality are not improved; and mechanically converting code by porting does not offer the opportunity to take advantage of .NET’s new features.
6 RE-FACTORING WITH THE .NET FRAMEWORK
6.1 Preparation
Re-factoring an application involves a much greater understanding of its design and implementation. In preparing for a re-factoring migration it is important to make sure that the system is well documented with an up-to-date specification and set of design documentation.
One of the goals in redesigning a VB6.0 solution and re-implementing it in the .NET Framework is to realize the benefits of Object-Orientation such as code reuse and more efficient structure. In order to do this the system must be comprehensively understood and redesigned using Object-Orientation principles. This analysis and design preparation obviously represents a greater short term cost and effort than that associated with porting but carries the potential of realizing much greater long term benefits. In addition to a good understanding of the existing system, re-factoring requires expertise in Object- Orientation design and best practice.
Where the scope of the work includes the introduction of new functionality or a fundamental design change a targeted re-design from the bottom up is likely be the most appropriate approach. However, as with any project, if new functionality is being introduced it obviously needs to be managed carefully with a clear statement of requirements and definition of the required additional functionality.
6.2 Pros
• Re-factoring is a chance to make a break from the older world of VB and realize the benefits of re-designing and implementing systems to take advantage of Object-Orientation and newer technologies such as the internet and XML.
• The goals of better supportability and maintainability through better design and code-quality can be achieved without the constraints and potential future liabilities of retaining dependence on interoperability and legacy VB DLLs.
• Re-factoring also represents a chance to take a pattern-based approach to re-design and implementation that wouldn’t be possible with porting – common solutions to common design scenarios can be approached in terms of existing documented patterns and implemented in reusable modules that can be applied across the system for common needs such as data-access, message management, error & activity logging and so on. This offers benefits in terms of speed of design, reusability, supportability and testing.
6.3 Cons
• The goal of escaping the world of COM and older VB may not be fully realizable if the re-factored systems still have to rely on services not currently available through .NET such as distributed transaction support or where the systems must make use of third-party integration components that are COM based – many of Microsoft’s own products are yet to be .NET-enabled and still rely on COM interfaces for integration and automation – Microsoft Office for example.
• With an effective re-design of a system there will be the temptation to take advantage of the situation to introduce new functionality. Many organizations will build wish-lists of future requirement requests between application releases and the option to roll these features into a re-factoring migration may be appealing. Whilst there may be very good sense in taking advantage of this opportunity and some very easy “wins” to be gained at very little extra expense and effort, there is a danger that without proper control the situation could turn into a free-for-all with everything being “up-for-grabs”.
• Re-factoring systems may give rise to problems with interactions, dependencies and interfaces to other systems that are not being migrated at all or are being ported rather than re-factored. There is a potential “domino-effect” of changes in re-factored systems’ interfaces or behaviors forcing change on systems outside the boundaries of the re-factoring efforts. In these cases the external systems may prove to be immutable forcing compromise or further work on the re-factored systems to accommodate the constraints that the external systems represent. At the very least problems may be encountered in defining and maintaining system-boundaries in order that the scope of the re-factoring does not creep into other systems and impose extra re-work and consequent cost upon them.
 
7 REAL WORLD MIGRATION
7.1 Migration Paths
In the real world an actual migration activity for a system is likely to involve a combination of the porting and re-factoring approaches. The following section describes the paths available through migrating an application and the options for applying porting and re-factoring techniques at the various stages in the process.

 In the diagram above of a Visual Basic migration path there are three possible exit points from the process:
1. The migration activity ends after the most basic of porting activities using the VB Upgrade Wizard after any (optional) preparatory parsing of the code base for efficient processing by the wizard. It is the fastest and least demanding of approaches but carries many of the risks described above.
2. Here a fuller port is carried out beginning the process above followed by a second stage of converting all library calls to use the .NET Framework instead of using the backward compatibility libraries; this represents a significant amount of work and needs to be done manually by skilled .NET developers. The advantage here is that the target language is VB.NET where the keywords are familiar.
3. Here a further stage is added after the two above, to convert the syntax to C#.NET. This allows the organization to adopt C# as its language of choice if it desires and does not add significant overhead since the majority of the migration effort will occur at stage 2 above, in changing the library calls into the .NET Framework.

8 CONCLUSIONS
It is clear that the move from VB to .NET is not a simple matter of running a one-off conversion tool (if it were the process would not be a matter of discussion). Many factors affect the approach, a great many of which are not technical.

It is not possible to say in general whether opting for porting or for re-factoring is most appropriate without assessing individual migration projects in the light of the strengths and weaknesses of each approach. In most cases the combined business/technical factors will force a blend of approaches to be adopted.
9 Further Reading:
• Walkthrough: Upgrading a Visual Basic 6.0 Application to Visual Basic .NET (http://msdn2.microsoft.com/en-us/library/zbyth951(VS.71).aspx)
• Introduction to Visual Basic .NET for Visual Basic Veterans (http://msdn2.microsoft.com/en-us/library/kehz1dz1(VS.71).aspx)