putting web services into context brent carlson vp of technology logiclibrary, inc
TRANSCRIPT
Putting Web Services into Context
Brent CarlsonVP of TechnologyLogicLibrary, 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
©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
©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
©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
©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
©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
©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
©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
©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
©2003 LogicLibrary, Inc.
Sell ItemsCashier
Accept Returned ItemsRestocker
Applying enABLE to Our Example: Build…
Sample Use Case Diagram
©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…
©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()
©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
©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, …
©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
©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?
©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…
©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
©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
©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
©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.”
©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
©2003 LogicLibrary, Inc.
Drilling Into Our Example…
©2003 LogicLibrary, Inc.
Drilling Into Our Example…
©2003 LogicLibrary, Inc.
Drilling Into Our Example…
©2003 LogicLibrary, Inc.
Drilling Into Our Example…
©2003 LogicLibrary, Inc.
Sell ItemsCashier
Accept Returned ItemsRestocker
…Bringing Us Back To Our Original Use Case
©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
©2003 LogicLibrary, Inc.
…And Our Original Component Model
Currency Exchange System<<comp spec>>
CurrencyMaintanance
getSupportedCurrencies()defineSupportedCurrency()
Conversion
convertCurrencyValue()defineExchangeRate()deleteExchangeRate()
©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)
©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…
©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
©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
©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
©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
©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
©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.
Thank you!
Brent CarlsonVP of [email protected]