Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

41
Dev 328 .NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect

Transcript of Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Page 1: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Dev 328

.NET & J2EEStrategies for Interoperability

David Aiken

Lead Enterprise Architect

Page 2: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Agenda

Motivation

Integration Scenarios

Integration Technologies

Complex Data

Integration Architecture

Taking it Further

Page 3: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Agenda

Motivation

Integration Scenarios

Integration Technologies

Complex Data

Integration Architecture

Taking it Further

Page 4: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Motivation

J2EE/Java applications exist

Migration is not an “Overnight” process

Design for InteroperabilityRe-use legacy systems

Replacement (phased)

Pilot for adoption

Cost savings for developer Resources

Page 5: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Agenda

Motivation

Integration Scenarios

Integration Technologies

Complex Data

Integration Architecture

Taking it Further

Page 6: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Interoperability ScenariosTechnology Map

J2EE

.NET

ASP.NETServiced

Components

JSP/StrutsServlets

EJB’sDatabase

Message Queue

Broker

Page 7: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Interoperability ScenariosPresentation Tier

J2EE

.NET

ASP.NETServiced

Components

JSP/StrutsServlets

EJB’sDatabase

Message Queue

Broker

Page 8: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Interoperability ScenariosBusiness Tier

J2EE

.NET

ASP.NETServiced

Components

JSP/StrutsServlets

EJB’sDatabase

Message Queue

Broker

Page 9: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Interoperability ScenariosShared Resources

J2EE

.NET

ASP.NETServiced

Components

JSP/StrutsServlets

EJB’sDatabase

Message Queue

Broker

Page 10: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Agenda

Motivation

Integration Scenarios

Integration Technologies

Complex Data

Integration Architecture

Taking it Further

Page 11: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Integration Technologies

Wire Level

Message Queues

Web Services

Page 12: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Integration TechnologiesWire Level

ProductsJa.NET (Intrinsyc), JNBridge Pro (JNBridge)

AdvantagesWire Level, Binary Performance

Keep Alive

DisadvantagesTightly Coupled Interface

Vendor Specific

Page 13: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Integration TechnologiesMessage Queues

ProductsMSMQ, IBM WebSphere MQHost Integration Server 2000, BizTalk Server 2002

AdvantagesLoosely Coupled, N to N Scenarios, SOATransactions, Security, RM

DisadvantagesSynchronous Operation is LimitedPossible Port / Firewall IssuesMessage Queue between Organizations?

Page 14: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Integration TechnologiesWeb Services – The way forward!

Products Standards-based SOAP stacksMS ASP.NETApache Axis, Glue etc.

AdvantagesLeverage component architectures & design patternsFacilitate service-orientationLoosely Coupled

DisadvantagesVerbose

Page 15: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Agenda

Motivation

Integration Scenarios

Integration Technologies

Complex Data

Integration Architecture

Taking it Further

Page 16: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Complex DataIntegration Challenge

.NET and Java Data Types do NOT map.net DataSet = ????

Java Vector = ????

We like to work with Native ObjectsDataSets, Collections, etc.

Page 17: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Complex DataIntegration Challenge - Facts

Thoughts:We Should be Thinking Service

We Should be Thinking Multiplatform

We Should NOT be Thinking RPC’si.e. Method Calls

We are Exchanging Messages

XML is our Data Format

XSD Should Define Message Structure

Page 18: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Complex DataIntegration Technology Factors

WireCreates proxies of data typesProxies Not Platform Friendly (e.g. No Data Binding)

Message QueuesAlready exchange messages!Need a common format

Web ServicesShould be exchanging messages!WSDL differences

RPC vs. document style interfaces

Not Platform Friendly (e.g. No Data Binding)

Page 19: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Complex DataIntegration Solution

Exchange Messages as XMLReturn XML

Return String containing XML

All Platforms Understand String

All Platforms can Parse XMLAfter all its just text!

Structure Defined Using XSD

Loosely Coupled

Supports Versioning!

Page 20: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Complex DataKey Lesson

XSD (Data Transfer Objects)Programming model independent

XSD(DTO)

J2EE™™

DOMJAXM

Custom Serializer Vendor Tools

.NET™™

Typed DataSet Xml Serialization

Namespace

Page 21: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Web ServicesComplex Data Types

David Aiken

Lead Enterprise Architect

demodemo

Page 22: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Agenda

Motivation

Integration Scenarios

Integration Technologies

Complex Data

Integration Architecture

Taking it Further

Page 23: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Integration Architecture

Design GoalsCapture Use Case in Code

Allow Interoperability to Change

Change Integration without breaking code

Use Best Practices

XBikes Sample ApplicationBased on Downhill Bikes

Several Flavours.net, J2EE IBM WebSphere

JBoss, WebLogic soon!

Page 24: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Object1 Object2 Object3 Object4

Actor3

Message5

Message6 Message7

Message8

Message9

Message10

System

UseCase1

UseCase2

UseCase3Actor1

UseCase4

«extends»

*

*

* **

*

Component1

Component2

Component3

Actor2

Message1

Message2

Message3

Component4

Message4

Use CaseModel

CollaborationDiagram

Object SequenceDiagramGUI Prototype

DomainModel

ClassModel

Dynamic

Static

«datatype»DataType1

«datatype»DataType2

«datatype»DataType3

Class1

Class2 Class3

Class4

1 *

Designing for Integration

Code

Page 25: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Design Patterns

CommandEncapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations.

AdapterConvert the interface of a class into another interface clients expect. Adapter lets classes work together that couldn't otherwise because of incompatible interfaces

FactoryProvide an interface for creating families of related or dependent objects without specifying their concrete classes.

Page 26: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Presentation Business Logic Data

XBikes Execution

.NET.NET .NET.NET

J2EEJ2EE

SQL

SQL

Use CaseFactory

Config.xml

CommandAdapters

Client Use CaseAdapter

IUseCase uc = Factory.GetUseCase(“XXXX”);DataSet dto = uc.execute();

WS

Wire

MQ

WS

Wire

MQ

BizServiced

Components

DALADO.NET

BizSessionBeans

DALEntityBeans

Se

rvic

e F

ad

eS

erv

ice

Fa

ça

de

Page 27: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Integration – XBikesArchitecture

David Aiken

Lead Enterprise Architect

demodemo

Page 28: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Integration – XBikesWeb Services

David Aiken

Lead Enterprise Architect

demodemo

Page 29: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Agenda

Motivation

Integration Scenarios

Integration Technologies

Complex Data

Integration Architecture

Taking it Further

Page 30: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Taking it Further

Orchestration

XML Web Services Standards Architecture

Page 31: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Orchestration layer (BizTalk)Business Logic DataPresentation

DTO

.ASPX Code

Behind.ASPX

BizTalkBizTalk Multipoint Multipoint

OrchestrationOrchestration

Orchestration LayerOrchestration Layer

BizTalkBizTalkWS WS

AdapterAdapter

MSMQMSMQ (Asych (Asych Adapter)Adapter)

J2EEJ2EE JDBCJDBC

ADO.ADO.NETNET.NET.NET

XML WSXML WS

XML WSXML WS

UCAdapter

OTHEROTHER(NOT XML WS)(NOT XML WS)

Page 32: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Web Service Standards

Web Services Interoperability Organisation

Safe subset of SOAP / WSDL etc.http://www.ws-i.org/

Basic Profile (Draft) 1.0

Usage Scenarios

Some testing tools

Follow specification for higher success

Page 33: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

XML Web Services Standards Architecture (WS interop platform)

SOAP

HTTP/SMTPXMLTCP/IP

Directory

InspectionSOAP SOAP ModulesModules

SOAPSOAPProtocolsProtocols

Referral

Routing

Security

License

Eventing Transactions

Queuing

The Internet

…Description

… …

DiscoveryDiscovery Application InfrastructureApplication Infrastructure

BasicBasic

Page 34: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Web Services Standards

Microsoft(WSE)

IBM(WSTK)

J2EE™™APPLICATION

SERVER

WINDOWS™™

IIS / COM+

Page 35: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Recommendations

Look out for the Microsoft Patterns & Practices Guide – Coming Soon!

Download DHB/XBikes demo apps to understand J2EE & .NET interop issues http://www.dotnetland.co.uk

Page 36: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

DHB / XBikesIntegration Reloaded

David Aiken

Lead Enterprise Architect

demodemo

Page 37: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Summary

Design Integration at the use case levelSelect technology

Default = Web Services

DataThink XML

Use Factory / Adapter Pattern to protect code from changesRemember Loosely Coupled, Message Based, Use-case Driven Architecture

Page 38: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Ask The ExpertsGet Your Questions Answered

Thursday 9-11am

Page 39: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

Community Resources

Community Resourceshttp://www.microsoft.com/communities/default.mspx

Most Valuable Professional (MVP)http://www.mvp.support.microsoft.com/

NewsgroupsConverse online with Microsoft Newsgroups, including Worldwidehttp://www.microsoft.com/communities/newsgroups/default.mspx

User GroupsMeet and learn with your peershttp://www.microsoft.com/communities/usergroups/default.mspx

Page 40: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

evaluationsevaluations

Page 41: Dev 328.NET & J2EE Strategies for Interoperability David Aiken Lead Enterprise Architect.

© 2003 Microsoft Corporation. All rights reserved.© 2003 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.