WriteImage CEP HP Quickly Builds Scalable World

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