39
Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc.

Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

Embed Size (px)

Citation preview

Page 1: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

Putting Web Services into Context

Brent CarlsonVP of TechnologyLogicLibrary, Inc.

Page 2: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Agenda

Today’s complex IT environment Web services: an opportunity to align

technology with business The enABLE methodology An example component – CurrencyExchange Applying the enABLE methodology to our

example A business process example – RosettaNet An enterprise case study – CNA Insurance Summary

Page 3: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Today’s Complex IT Environment

Generations of technologies coupled with current business demands

Further complicated by: Budget constraints Competitive pressures Need to protect corporate

knowledge

Page 4: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Web Services: An Opportunity to Align Technology with Business

Web services provide enterprises with the opportunity to: Normalize existing applications

Modernize legacy applications with new technologies

Isolate new development from legacy environments

Enable current business systems to support next-generation business processes

Page 5: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

… But It Doesn’t Happen For Free

Blindly applying Web services technology will result in: Poor performance YALOT: Yet Another Layer Of Technology More spaghetti code

IT organizations need to take the time to: Define where they are going Align their application development and

integration with business needs

Page 6: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

The enABLE Methodology

Assess what you have and create a roadmap for migrating to

Web services

Build a catalog of essential software development assets

(SDAs) mapped to your roadmap (i.e., your business architectures and models)

Locate the most appropriate software development assets for

your high-priority services, using the catalog you have built

Employ these assets in your tools of choice for developing

Web services

Page 7: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

An Example SDA: CurrencyExchange Component

CurrencyExchange

convert(valueToConvert : CurrencyValue, targetCurrency : String, targetDate : Date, overridingStrategy : ConversionStrategy) : CurrencyValuegetCurrencyCodes() : ListsetExchangeRate(exchangeRate : ExchangeRate, fromDate : Date, toDate : Date)getExchangeRates(sourceCurrencyCode : String, targetCurrencyCode : String) : ListclearExchangeRate(sourceCurrencyCode : String, targetCurrencyCode : String, dateToClear : Date) : ExchangeRateconfigureConversionStrategy(strategy : ConversionStrategy)

SessionBean(from ejb)

Value Object Types

CurrencyValue

currencyCode : Stringvalue : BigDecimal

(from Value Object Types)

ExchangeRate

sourceCurrencyCode : StringtargetCurrencyCode : StringexchangeRateValue : BigDecimal

(from Value Object Types)

DateRangeConflictException

ConversionStrategy

convert(valueToConvert : CurrencyValue, targetCurrency : String, targetDate : Date) : CurrencyValue

Exception(from lang)

IComponent

Page 8: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Applying enABLE to Our Example: Assess…

Technology on which the asset is based .NET

Compatibility of the asset’s technology with future technical plans Plans going forward for service-oriented architecture based

on .NET Framework

Available documentation that describes the asset UML model, documentation, requirements, …

Current use of the asset in the organization’s business activities Used for support of international order processing (internal)

Expected use of the asset to support future business needs Expand international order processing to the Web and to

automated B2B integration

Page 9: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Applying enABLE to Our Example: Build…

Analytical System<<comp spec>>

Reporting

Prediction

Import

Quote

Shipping System<<comp spec>>

ShippingMethod Management

ShippingStatus

ShippingRequest

Order System<<comp spec>>

OrderMaintanance

SalesTaxCalculation

SalesTaxCalculator<<comp spec>>

Conversion

Currency Exchange System

<<comp spec>>

CurrencyMaintanance

Financial Accounting

<<comp spec>>

FinancialReportingSales Transaction

Payments

CreditCard Handler<<comp spec>>

Verification

Page 10: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Applying enABLE to Our Example: Build…

Primary UML construct is class diagram laying out coarse-grained reference components/services

Other UML constructs to consider: Use Cases

Establish initial requirements for business function Actors Preconditions Functional scenario / use case steps

Activity Diagrams Describe detailed process or subprocess flow

underlying a use case Specific activities can be mapped to functional

capabilities that are to be implemented as Web services

Page 11: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Sell ItemsCashier

Accept Returned ItemsRestocker

Applying enABLE to Our Example: Build…

Sample Use Case Diagram

Page 12: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Retrieve Item Information

are items priced in currency of customer?

Convert Currency

no

Calculate Taxes

Generate Invoice

Create Invoice Entry

last item?

no

Calculate Shipping and Handling

yes

yes

Applying enABLE to Our Example: Build…

Drilling into Sell Items Activity Diagram…

Page 13: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Applying enABLE to Our Example: Build…

Associating Convert Currency Activity with Component…

Currency Exchange System<<comp spec>>

CurrencyMaintanance

getSupportedCurrencies()defineSupportedCurrency()

Conversion

convertCurrencyValue()defineExchangeRate()deleteExchangeRate()

Page 14: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Applying enABLE to Our Example: Build…

Returning to our component model… Map our reference component to our example asset

Currency Exchange System<<comp spec>>

CurrencyMaintanance

getSupportedCurrencies()defineSupportedCurrency()

Conversion

convertCurrencyValue()defineExchangeRate()deleteExchangeRate()

Reference Component operation Component method

getSupportedCurrencies getCurrencyCodes

defineSupportedCurrency no direct equivalent

convertCurrencyValue convert

defineExchangeRate setExchangeRate

deleteExchangeRate clearExchangeRate

Page 15: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Applying enABLE to Our Example: Locate…

Finding assets as part of an application development project Identify the applicable portion of the business

reference model Currency Exchange system

Investigate the services and operations defined by the model

convertCurrencyValue, etc. Initiate a search for SDAs mapped against the

model CurrencyExchange component is found

Retrieve various artifacts to evaluate the asset UML model, source code, …

Page 16: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Applying enABLE to Our Example: Locate…

Techniques and tools for locating candidate SDAs Word of mouth – find out what others are using

to meet this requirement

Manual – browse models and scan source code

Search statically maintained spreadsheets

Use an SDA mapping and discovery engine, such as LogicLibrary’s Logidex

Page 17: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Applying enABLE to Our Example: Employ...

Design considerations for our example Web service How should we expose the information from

our specialized date range exception to our Web service client?

Do we choose to expose our conversion strategy capability on the Web service?

Do we create separate Web services for our currency conversion operations from our currency maintenance operations, or do we combine them into one service?

Page 18: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Applying enABLE to Our Example: Employ...

Combining multiple SDAs into a single Web service Do our SDA interfaces match our desired service

API? If not, what additional behaviors are required? Can we harvest other SDAs to support these behaviors?

Do some operations span multiple assets? If so, where does the glue logic reside? How do we implement compensation logic?

We will revisit these points in our case study…

Page 19: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

A Business Process Example:RosettaNet

What is RosettaNet? “RosettaNet is a consortium of major Information

Technology, Electronic Components, Semiconductor Manufacturing and Telecommunications companies working to create and implement industry-wide, open e-business process standards. These standards form a common e-business language, aligning processes between supply chain partners on a global basis.”

From RosettaNet’s home page at www.rosettanet.org

Page 20: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Why Is RosettaNet Interesting?

Prasad Rampalli, Intel’s IT Architect: “We have championed the whole B2B commerce

space with a lingua franca based on the RosettaNet standard. It is based on an XML messaging format and has a sufficient level of encryption to enable secure B2B conversations with the multitudes of trading partners that we've got.”

From Dec 15, 2002 ZDNet interviewhttp://techupdate.zdnet.com/techupdate/stories/main/0,14179,2901716,00.html

Page 21: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Emerging Business Process Standards

Significant industry movement away from EDI towards standardized, XML-based business process and messaging definitions Web services is accelerating this trend

Other examples of business process standards: ACORD: insurance IFX: financial services ebXML: electronic business/trading

Page 22: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Emerging Business Process Standards

Advantages: Can learn from industry best practices and experience

XML-based message sets Standard data dictionaries Reference business processes

Packaged applications are adopting standards as they move towards Web service-oriented APIs

Besides, your business partners are probably already doing something here and will take you with them – whether you like it or not!

Intel: “…13 percent of all our machine-to-machine, B2B transactions today are happening through the (RosettaNet) standard – roughly 30,000 transactions a month.”

Page 23: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Back to RosettaNet…

Composed of Clusters, Segments, and Partner Interface Processes (PIPs)

Example: Cluster 3: Order Management

Segment 3C: Returns and Finance PIP 3C3: Notify of Invoice

Page 24: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Drilling Into Our Example…

Page 25: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Drilling Into Our Example…

Page 26: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Drilling Into Our Example…

Page 27: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Drilling Into Our Example…

Page 28: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Sell ItemsCashier

Accept Returned ItemsRestocker

…Bringing Us Back To Our Original Use Case

Page 29: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Retrieve Item Information

are items priced in currency of customer?

Convert Currency

no

Calculate Taxes

Generate Invoice

Create Invoice Entry

last item?

no

Calculate Shipping and Handling

yes

yes

…Bringing Us Back To Our Original Use Case

Page 30: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

…And Our Original Component Model

Currency Exchange System<<comp spec>>

CurrencyMaintanance

getSupportedCurrencies()defineSupportedCurrency()

Conversion

convertCurrencyValue()defineExchangeRate()deleteExchangeRate()

Page 31: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

…And Finally To Our Original Component!

CurrencyExchange

convert(valueToConvert : CurrencyValue, targetCurrency : String, targetDate : Date, overridingStrategy : ConversionStrategy) : CurrencyValuegetCurrencyCodes() : ListsetExchangeRate(exchangeRate : ExchangeRate, fromDate : Date, toDate : Date)getExchangeRates(sourceCurrencyCode : String, targetCurrencyCode : String) : ListclearExchangeRate(sourceCurrencyCode : String, targetCurrencyCode : String, dateToClear : Date) : ExchangeRateconfigureConversionStrategy(strategy : ConversionStrategy)

SessionBean(from ejb)

Value Object Types

CurrencyValue

currencyCode : Stringvalue : BigDecimal

(from Value Object Types)

ExchangeRate

sourceCurrencyCode : StringtargetCurrencyCode : StringexchangeRateValue : BigDecimal

(from Value Object Types)

DateRangeConflictException

ConversionStrategy

convert(valueToConvert : CurrencyValue, targetCurrency : String, targetDate : Date) : CurrencyValue

Exception(from lang)

Page 32: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

So What?

Business processes matter to an IT organization! After all, you are “in business” to support the business

(and not the other way around…) Defining the right business processes is hard work

Most organizations do not have a clear view of how they do business

Using standards-based processes (in part or in whole) can help to rationalize the business

Don’t try to “boil the ocean” – pick and choose the most important/dynamic areas of business to focus on

Linking business processes to existing and new technology is also hard work Web services (and service-oriented architectures)

can help Tools can help

Which leads us to our case study…

Page 33: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

An Enterprise Case Study: CNA Insurance

CNA Insurance Global Insurance organization 12 billion in revenue 15,000 employees total, 1,600 in IT workforce

CNA’s Service-oriented Architecture Initiative Led by Dmitry Tyomkin and Boris Lublinsky,

Enterprise Architects, CNA’s Solutions and Architecture Group

Objectives: Build bridges between different systems and

applications Leverage existing IT assets Create ability to respond quickly and efficiently

to changes in the business environment

Page 34: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

SOA in the Enterprise Architecture – CNA’s View

Business ProcessDriven Enterprise

Mainframe

ServersServers

MainframeWorkstations

Data DataData

Existing ITHardware/SofwareTopology

EAI - Integrating andExposing ExistingEnterprise Systems

Services -Rationalization ofEnterprise SystemsAgainst BusinessMeaningful Services

Page 35: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Current SOA Components in CNA

Consolidated Infrastructure Enterprise Service Bus

Integration Hub Service Invocation and Execution

Framework Service Locator

Services Implementation Framework Service Classification

Page 36: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

CNA’s Service Catalog: LogicLibrary Logidex

Projected Service

Acquired Service

Certified Service

Implemented Service

Acquisition

Certification

Implementation

Testing

Deployed Service

Tested Service

Deployment

Integral part of SOA

Follows service lifecycle

Manages development and deployment information

Page 37: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Service Composition

Services and Methods are managed independently Services are composed of one or more Methods Methods may be composed within one or more Services

Typically a Method will be composed within a single Service Relationships between Services and Methods are

managed with strongly-typed asset-to-asset relationships within Logidex-managed metadata

Appropriate Methods identified as new Services are defined and projected Projection process includes

Selecting from predefined Methods Specifying new candidate Methods

Method-level granularity within Logidex enables More granular usage tracking Flexible service composition based on domain needs

Page 38: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

©2003 LogicLibrary, Inc.

Summary

To mitigate the risks & fully realize the benefits of implementing Web services: Don’t blindly apply Web services technology

Today’s tools can generate Web services quickly, but…. Take the time to define your future business process needs

If you don’t know where you are going, how will you ever get there?

Review your current business systems Don’t “boil the ocean.” Pick the key systems that support

business needs. “Meet in the middle”

Map your current business systems to your future business processes.

Page 39: Putting Web Services into Context Brent Carlson VP of Technology LogicLibrary, Inc

Thank you!

Brent CarlsonVP of [email protected]