Microsoft® Visual Studio® .NET Customer Solution Case Study HP Quickly Builds Scalable World-Wide .NETConnected Service Framework Overview Country: US and Worldwide Industry: Computers, IT, Imaging, Printing Customer Profile HP delivers vital technology for business and life. The company's solutions span IT infrastructure, personal computing and access devices, global services and imaging and printing. Business Situation HP had a service management framework built on old technology, which was difficult to maintain and support, and timeconsuming to extend. Its performance and scalability were no longer sufficient. Solution With the help of IDesign, HP designed and built a new Microsoft® .NET-connected service framework using C#, the .NET Framework, Windows Server™ 2003 Enterprise Edition and SQL Server™ 2000. Benefits Better developer productivity Improved scalability Improved performance Estimated 1/5 the custom code Improved code documentation “Conservatively, we estimate a 5x reduction in the amount of custom code written for the Carbon framework [in C#] as compared to our previous version.” Peter Skelly, IT Engineer, Hewlett-Packard How does a company of 140,000 employees implement a centralized world-wide user information repository? How does it provide other services to its employees world-wide? HP accomplished this, in part, by implementing a service management framework. The first version of the framework didn't scale or perform as well as desired. HP’s Management and Infrastructure and Tools team, with assistance from Juval Lowy of IDesign, Inc designed and implemented a new service management framework, called Carbon, using C#, the Microsoft® .NET Framework, Windows Server™ 2003 Enterprise Edition operating system, and SQL Server™ 2000, to use the new capabilities of these tools and technologies. The new framework was implemented in 5 months by 5 developers, requires significantly less code than the old framework, and more than meets its performance specifications. “From a performance and scalability perspective,… our design goal was 20 transactions per second. Initial stress tests achieved greater than 20 transactions per second.” Peter Skelly, IT Engineer, Hewlett-Packard Situation Hewlett-Packard currently has over 140,000 employees with capabilities in 178 countries doing business in more than 40 currencies and more than 10 languages. Revenues for the combined companies were $72 billion for the fiscal year that ended October 31, 2002. That kind of size can yield significant economies of scale, and can also raise challenges. For instance, how might a company of over 140,000 employees implement a centralized user information repository? Using a single repository for a company this size is considered a risky architectural design, because it introduces a single point of failure. In addition, a single repository that big would be difficult or impossible to change if it were accessed directly. Carbon is the name of HP's in-house service management information system, intended to provide a common architecture and infrastructure to the actual systems or services. Carbon provides the architectural design guidelines, class libraries frameworks, interfaces, development standards and a common way for implementing and integrating services or extending existing services. Carbon is intended to reduce the overall overlap between the different organizations, decrease cost of ownership for new services, shorten the time it takes to develop and deploy them, and offer a common data access backbone. Fast Facts Number of developers to build application 5 Number of months to build initial prototype application 5 Size of database (GB) ~27 For a problem like the company-wide user information repository, Carbon encapsulates the actual repository. It provides scalable and secure access to the database, and enables changes by decoupling the end-services from the storage. In addition to user information, Carbon also provides audio, smartcard, and calling card services at this point; all of these share common authentication, authorization, logging, notification, and reconciliation services. Yet another benefit of Carbon is that the service providers need not interact with multiple service consumers: each provider interacts only with Carbon. Carbon is the next generation of a project originally developed in Microsoft® Visual Basic® 6.0, Internet Information Services (IIS) 4, and Classic ASP. Due to the technologies used, that system presented maintenance and support challenges, according to HP Management Infrastructure and Tools' Peter Skelly. "Developing new services or features required redundant effort, and the architecture didn't provide the application performance and scalability we wanted. The system inherently lacked transactional integrity, which meant that we had to write a considerable amount of code to compensate. We were only getting marginal code reuse, and it took a high degree of customization to support each new service. "The legacy environment did not enable object oriented programming and reuse of code. The use of SOAP and related XML technologies was tedious. The ability to late bind to services in a type-safe manner was non-existent. The ability to utilize the full feature set of the COM+ services was not possible with the technologies used." Skelly's team considered Java as a development language, and the use of J2EE and supporting technologies. However, the investment in current knowledge and skills for the existing solution, in conjunction with a tight time frame, ruled this option out. Solution With the advent of the Microsoft .NET Framework, HP's Management Infrastructure and Tools team (MIT) team saw an opportunity to resolve the current architecture’s maintenance and support challenges, and increase the application “The ease of development and the .NET Framework's integration with XML have given us a productivity gain.” performance and scalability. The architecture and design work was done by HP's Management Infrastructure and Tools team with the help of Microsoft Regional Director Juval Lowy, of IDesign, Inc. Peter Skelly, IT Engineer, HP Management Infrastructure and Tools The Carbon architecture separates shared core or utility services like authentication from individual applied services like employee data management. The design process used a component based, n-tier approach – a combination of several standard design approaches. "We made several passes through the overall application, and each pass built on the components identified in the previous iteration, their requirements, and their interactions," says Skelly. "Once the primary concerns, the basic framework of components, were devised and stabilized (i.e. the number of components remained stable with each successive scenario consuming only those components in the proposed architecture), the additional concerns were addressed: transactions, security, scalability, identity management, and so on." HP's MIT team then went through the layers of the application and addressed process and queuing concerns for each context. Support App Presentation Utilities Business Logic Flow Builder LCE/QC Flow Manager Reconciler Core WS Admin App Authentication Core Engine Authorization User Service Service 1 User Service Recon. Service 1 Recon. Directory Services LDAP ... Service N Logging Data Access ... Service N Recon. Service 1 Data Access ... Service N Data Access Service 1 DB ... Service N DB . . . Carbon Data Access The application breaks down to 4 physical tiers, and 5 or 6 logical tiers. The user interface (2 layers) is based on a Windows Forms application which calls a .NET Enterprise Services (COM+) library to initiate activities, and a Web Service for remote and/or disparate clients to invoke activities. There are two business logic layers, one for business-specific logic and one for common logic that is shared. All data access passes through .NET Enterprise Services components acting as the data access layer and a second set of components calling these components with some pre- and post-processing of the calls to the data access layer. Since the database is Microsoft SQL Server™ 2000, the managed SQL provider is used exclusively for all Microsoft ADO.NET database operations. There are currently four services which implement framework-defined interfaces, with 5-6 to be integrated within this quarter. The services currently being implemented are the HP world-wide employee data management, the HP world-wide audio conferencing service, the HP world-wide electronic smartcard service, and the HP world-wide calling card service. Future services to be integrated into the Carbon framework include Active Directory® service management, Microsoft Exchange messaging management, file services (personal and group file shares), HP worldwide VPN services, and more than 10 additional services specific to geographical regions. All of the above services are intended to be provisioned and managed through the Carbon framework interfaces, and will consume horizontal services. Util Type Safe Data set Data Adaptors, Connections Carbon SQL There are five horizontal shared services that are currently provided by the framework via .NET Enterprise Services or .NET components. Authentication is provided via Active Directory accounts. Active Directory is part of Microsoft Windows Server™. Authorization is provided via .NET Enterprise Services roles and an additional proprietary layer. Logging is provided via custom classes that use Microsoft ADO.NET to access SQL Server 2000. Notification is provided with custom classes that use XML, XSLT and targeted protocols for email, and mobile devices. Reconciliation is provided with asynchronous processing and data management implemented with .NET Enterprise Services and Microsoft Message Queues. In addition to these five currently implemented shared services, there are currently 4 more in the design and development stages. of only 3.3k lines. This points to a current projected reduction in lines of code of 10X. While it is too early for this to be definitive, the average of the first 2 services has dropped to about 3.7K lines of code per service." Currently there are 29 projects in the solution: 10 test harnesses, implemented as Windows Forms; 1 Web Service; 15 Class Libraries; and 3 set up projects: 1 Web MSI setup, 1 standard MSI setup, and 1 merge module used in the standard MSI setup to deliver framework and utility components. Initially, there were 12 components in the solution. This will grow, with roughly 2-3 components added per new provisioning service added, and approximately 7 planned components implementing additional features. By March 2004, Skelly estimates that Carbon will include 30-35 components, most of them integrated services. "We also conservatively estimate a 35% reduction in service-specific lines of code for each service implementation integrated into the Carbon framework, with even greater gains as each new service leverages from existing framework interfaces and shared horizontal services. Again, this is not a strict apples-to-apples comparison, but still a significant drop in total lines of code. Benefits "There are currently less than 32k lines of code in the solution," says Skelly, "but this will grow. The original application comprises roughly 200K lines of Visual Basic, ASP, and T-SQL code. However, the application we are replacing currently contains over 30 services, and each service uses a shared 'core functional' code base of about 26K lines, plus about 7K lines of code per service. "Although all shared features are scheduled for incremental inclusion, we have a shared feature code base using the .NET Framework "Conservatively, we estimate a 5x reduction in the amount of custom code written for the Carbon framework as compared to our previous version. This isn't an apples-toapples comparison, since the new framework is not concerned with the user interface, for which the previous version has a great deal of code. However, we are pleased with the reduction in total lines of code. The Carbon system interacts with several other HP/UX, Linux and Microsoft-based systems through the use of SOAP and other standard protocols, including TCP and SMTP. The primary interoperability protocol used is SOAP. Visual Studio .NET and the .NET Framework made it easier for HP’s MIT team to adopt and enhance SOAP interfaces. "We used many .NET tools and utilities including the Web services projects and classes, the XSD utility, and the extensibility features of the .NET Framework, specifically hooks into the processing of the raw SOAP streams prior to .NET deserialization." "The use of Enterprise Services within the Carbon application is extensive," says Skelly. "We use object pooling, database access layer component management, transactions and synchronization, security through interface and method level access checks, including Role Based Security. We do interface queuing and loosely coupled event management through subscriptions. We use queued components to guarantee transaction completion, and to include nonmanaged resources within logical transactions. This reduces the need for a significant amount of 'compensating code'. "This is the most significant 'integration' differentiator of the .NET Framework. Having the ease of integration and management of .NET Enterprise Services within the component development process, as well as having the ability to provide de-centralized management and support of the application features, is vital to the application's success. "From a performance and scalability perspective, although we cannot provide an accurate comparison with the current solution, our design goal was 20 transactions per second. Initial stress tests achieved greater than 20 transactions per second through the architecture. The ServicedComponent object pooling capabilities improved our scalability. The previous application had little to no capability to provide pooling and was only capable of 'hardware scaling'. "We have been pleased with the supportability aspects of a move to the .NET Framework. Using C#, our documentation is now more tightly integrated in the design and development process through integration with Visio 2002 Architect during design, in XML comments during coding, and via additional tools to produce standard Windows help files for developers, support and staff. "The ease of development and the .NET Framework's integration with XML have given us a productivity gain. Attribute-based Web Service development, auto generated WSDL, class generation from XSD and XML, and code generation tools have replaced the need for a great deal of manual coding. "HP MIT is pleased with the .NET Enterprise Services packet level security and RBAC, identity flow-through system, and Code Access Security (CAS) from .NET code. With its integration into COM+ and its use of distributed transactions, Carbon provides increased reliability. "The Carbon Framework helps to insure transactional integrity via .NET Enterprise Services transactions and Microsoft Message Queues. The custom work flow architecture was implemented through the .NET Framework's attribute-based programming and object-oriented programming features, and is accessible to all service developers." For More Information Microsoft Visual Studio .NET For more information about Microsoft products and services, call the Microsoft Sales Information Center at (800) 4269400. In Canada, call the Microsoft Canada Information Centre at (877) 5682495. Customers who are deaf or hard-ofhearing can reach Microsoft text telephone (TTY/TDD) services at (800) 892-5234 in the United States or (905) 568-9641 in Canada. Outside the 50 United States and Canada, please contact your local Microsoft subsidiary. To access information using the World Wide Web, go to: www.microsoft.com The Microsoft .NET Framework is an integral Windows® component that supports building and running the next generation of applications and Web services. For more information about IDesign Inc. products and services, call (408)373-4636 or visit the Web site at: http://www.idesign.net For more information about HewlettPackard Company products and services, call (408) 725-8900 or visit the Web site at: http://www.hp.com For more information about the .NET Framework, go to: http://msdn.microsoft.com/netframework/ Microsoft Visual Studio .NET is the rapid application development (RAD) tool for building next-generation Web applications and Web services. Visual Studio .NET empowers developers to rapidly design broad-reach Web applications for any device and any platform. In addition, Visual Studio .NET is fully integrated with the .NET Framework, providing support for multiple programming languages and automatically handling many common programming tasks, freeing developers to rapidly create Web applications using their language of choice. Visual Studio .NET includes a single integrated development environment with RAD features for building Web applications and middle-tier business logic, and RAD XML designers for working with data. For more information about Visual Studio .NET, go to: http://msdn.microsoft.com/vstudio/ To acquire Visual Studio .NET, please see your reseller or go to: http://shop.microsoft.com/devtools/ Software and Services © 2003 Microsoft Corporation. All rights reserved. This case study is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY. Microsoft, Active Directory, Visual Basic, Visual C#, Visual Studio, Windows, the .NET logo, the Visual Studio logo, and Windows Server are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners. The names of actual companies and products mentioned herein may be the trademarks of their respective owners. Document published February, 2004 Products − Microsoft Visual C#® .NET − Microsoft Visual Studio .NET 2003 − Microsoft Exchange 2000 Server − Microsoft SQL Server 2000 − Microsoft Windows Server 2003 Enterprise Edition Technologies − Web Services
© Copyright 2026 Paperzz