Download Presentation Title

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
Distributed Component Architectures
for Cooperative Information Systems
Edward Cobb
Vice President, Architecture & Standards
BEA Systems
[email protected]
7 September, 2001
Trademarks
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
• The following are trademarks of the Object
Management Group
– CORBA
– UML
• The following are trademarks of Sun Microsystems
– Java
– JavaBeans
– Enterprise JavaBeans
– J2EE
– J2SE
– J2ME
• The following are trademarks of their respective
companies:
–
–
–
–
7 September 2001
WebLogic - BEA Systems
Websphere - IBM Corporation
iPlanet - Sun Microsystems/AOL
Microsoft .NET - Microsoft Corporation
COOPIS 2001 - Trento, Italy
2
Agenda
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
• Today’s Business Environment
• Evolution of Component Technologies
–
–
–
–
–
Desktop Objects
CORBA and DCOM
Object Transaction Monitors
Java and J2EE
Microsoft’s .NET
• Loosely-Coupled vs. Tightly-Coupled
• Convergence via Web Services
• Conclusions
7 September 2001
COOPIS 2001 - Trento, Italy
3
Today’s Business Environment
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
•Increased Competition
– Time to Market
– Flexibility
– Adaptability
•Cost Containment
– Shortage of IT skills
– “Do More with Less”
– IT contribution to bottom line
•Pace of Technology Innovation
– Difficult to Keep Up
– Opportunity to gain and
maintain competitive
advantage
7 September 2001
COOPIS 2001 - Trento, Italy
4
What is a Component?
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
•A self-contained unit of
software code with
– its own data and logic
– well-defined connections or
interfaces
– exposed for communication.
•Designed for repeated use
– in developing applications
– with or without
customization.
7 September 2001
COOPIS 2001 - Trento, Italy
5
Why Components?
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
• Time to market
– Improved application developer productivity
– Reduced complexity
– Reuse of existing code
• Programming by assembly (manufacturing) rather
than development (engineering)
– Reduced skills requirements
– Focus expertise on domain problems
• Key benefit will be seen with server-side
development
7 September 2001
COOPIS 2001 - Trento, Italy
6
Objects on the Desktop
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
•Key to Graphical User
Interfaces (GUIs)
•Pioneered by the Apple
Macintosh
•Brought to the PC by Microsoft
and IBM
•Key Enabling Technology for
the success of Microsoft’s
Windows
•Has become the preferred
approach for all GUI
development
•A tightly-coupled model
7 September 2001
COOPIS 2001 - Trento, Italy
7
The Client/Server Revolution
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
• Local Area Networks make Sharing Efficient and
cost-effective
– Devices (e.g. printers)
– Files
– Databases
• Power to the Desktop User
– Applications Reside of Client Desktop
– Rise of Powers tools (Microsoft Visual Basic, Sybase Power
Builder) for the desktop programmer
– Servers used for fixed function (data and device access)
7 September 2001
COOPIS 2001 - Trento, Italy
8
Objects on the Server
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
• Two competing alternatives
– CORBA from the Object Management Group (multilanguage, multi-OS, and vendor neutral)
– DCOM from Microsoft (multi-language but Windows only)
• Interface Definition Language (IDL)
– Defines the contract between client and server
– Forms the basis of the on-the-wire interoperability protocol
– Based on a tightly-coupled RPC model
• Both had limited success
– Distribution costs of fine-grain objects
– Scalability problems inherent in client-server architectures
– Complexity of supporting multiple programming languages
7 September 2001
COOPIS 2001 - Trento, Italy
9
Common Object Request Broker
Architecture (CORBA)
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
7 September 2001
COOPIS 2001 - Trento, Italy
10
Object Transaction Monitors
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
• A need breed of application middleware
–
–
–
–
–
Not a CORBA ORB with a “suite” of services
Not a TP monitor with O-O language binding
a new software platform built from “open standards”
a component-based development model
AND the performance and “abilities” of a TP monitor
• Examples:
– BEA WebLogic Enterprise (previously called M3 and now
part of BEA Tuxedo)
– Microsoft’s MTS
4 November 1998
Object Computing Europe 98 - Helsinki
11
Java Makes CORBA a Big Success
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
•Rise of the web shifts focus
from client to the server
•Virtual machine architecture
provides better portability and
security
•Java programming language
eliminates many of the
complexities of C++
•Focus on portability rather than
interoperability
•Single language results in APIs
which are more natural for the
Java programmer than IDL
mappings of CORBA APIs
7 September 2001
COOPIS 2001 - Trento, Italy
12
Application Server Architecture
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
Web Clients
(via Web Server)
Web Server
HTTP
routing
(e.g., Net
Director),
Firewall
Web
Clustering
Web Server
State
Data
State
Data
(routing,
load
balancing,
failover)
Firewall,
Net
Director
Servlet/
Servlet/
Web
JHTML/JSP
JHTML/JSP
Container
Component,
Object
Clustering
State
Data
Servlet/
Servlet/
Web
JHTML/JSP
JHTML/JSP
Container
Enterprise
Enterprise
Application
JavaBeans
JavaBeans
Container
State
Data
(routing,
load
balancing,
failover)
Enterprise
Enterprise
Application
JavaBeans
JavaBeans
Container
Web Clients
State
Data
Programmed Clients
7 September 2001
COOPIS 2001 - Trento, Italy
Enterprise
Enterprise
Application
JavaBeans
JavaBeans
Container
13
What is J2EE?
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
• One of three Java platform specifications
– Java 2 Micro Edition (J2ME)
– Java 2 Standard Edition (J2SE)
– Java 2 Enterprise Edition (J2EE)
• A Java API specification for Enterprise Applications
– Includes J2SE plus
– Web container
– EJB container
• The architecture of the Application Server
– BEA WebLogic
– IBM Websphere
– Sun iPlanet
7 September 2001
COOPIS 2001 - Trento, Italy
14
J2EE 1.3 Architecture
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
Applet
HTTP
SSL
J2SE
Application
Client
Java
Mail
DB
JCX
JDBC
JAXP
JAF
EJB
JTA
JAA
JMS
Java
Mail
JCX
JDBC
JAXP
HTTP
SSL
JTA
JAA
JMS
J2SE
Servlet
JSP
JAF
J2SE
JDBC
JAA
JTA
JMS
HTTP
SSL
J2SE
7 September 2001
COOPIS 2001 - Trento, Italy
15
Web Container
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
• Client Access
– HTTP(S) Clients with HTML
– HTTP(S) Clients with XML documents
• Programming APIs
– Servlets
– Java Server Pages (JSP)
• Dynamic HTML content
• Custom Tag Libraries
– XML parsing (JAXP) in J2EE 1.3
• Back-end access
– EJBs via Java RMI
– DB via JDBC
– Enterprise Information Systems via JCA in J2EE 1.3
7 September 2001
COOPIS 2001 - Trento, Italy
16
EJB Container
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
create
find
remove
EJB Home
(bean identifier)
EJB Home implements all
lifecycle services for the bean.
Client
methods
EJB Object
EJB Object
EJB
EJBObject
Object
(client view)
Enterprise Bean
Enterprise Bean
Enterprise Bean
Enterprise Bean
EJB Object provides a client view of the enterprise
bean. It intercepts all calls and performs
transaction, state, persistence, and security
services for the bean.
7 September 2001
COOPIS 2001 - Trento, Italy
17
EJB Taxonomy
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
•Session Beans
•“TP Monitor” style
•Short-lived, no key
•1-to-1 relationship to client
•Explicit DB access
•E.g., Bank Teller,
Commerce
Server
(Inventory
agent,
“MTS style”)
Session
Beans
Stateless
7 September 2001
Enterprise
JavaBeans
E-
Many EJB
applications
will use both!
(Web
shopping
cart)
Stateful
Entity Beans
Component view of DB row or
object
May be long-lived
Primary key, stateful
1-to-many relationship to client(s)
E.g., Customer, Order
Entity
Beans
(via O/R
mapping)
ContainerManaged
COOPIS 2001 - Trento, Italy
(via explicit
JDBC; when
automated tools
are insufficient)
BeanManaged
18
User Code
EJB Architecture
Generated Code
All else,
system code
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
EJB Server
EJB Container
Client
EJB home stub
EJB
Object
Stubs
7 September 2001
EJB
Objects
EJB home object
Deployment
Descriptor
COOPIS 2001 - Trento, Italy
DBMS
Enterprise
Beans
19
Microsoft .NET
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
• Third party .NET services
• Building-block services
• .NET Platform
–
–
–
–
Infrastructure + tools
User experience
Building blocks
Mega services
• .NET Products and services
–
–
–
–
–
Windows.NET
MSN.NET
Personalized subscription services
Office.NET
VisualStudio.NET
• VB style
• Generates XML
– bCentral.NET
• BizTalk
• Business process
orchestration
• CRM services
7 September 2001
– Identity (Passport)
– Notification and messaging
• Unified IM, e-mail, voice
mail, …
– Personalization
– XML store
• SOAP
• Data description
• Unified data access???
– Calendar service
– Directory and search
– Dynamic delivery
COOPIS 2001 - Trento, Italy
20
Loosely-Coupled and TightlyCoupled Architectures
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
•Tightly-Coupled
•Loosely-Coupled
– High Degrees of
Interdependence
– Difficult to change parts
– Synchronous Invocations
(RPCs, conversations)
– Implicit State Sharing
– Implicit Contexts
– 2PC Transactions
– Best for intra-enterprise
•CORBA 2, J2EE 1.2, and
DCOM are all tightly-coupled
– Greater Independence
– Much easier to change parts
– Asynchronous invocations
(messaging)
– Meta-Data Sharing
– Explicit Contexts in
messages
– Workflow
– Ideal for inter-enterprise
(web)
•CORBA 3, J2EE 1.3, and .NET
add loosely-coupled capabilities
Web Services is an architecture for loosely-coupled applications
7 September 2001
COOPIS 2001 - Trento, Italy
21
Business Rationale for Loose Coupling
Booking a Business Trip
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
Cancel
S8
failure
Check flight
Schedules
T2
S2
S6
T1
S1
S2
Start
failure
S4
S5
S9
hotel
car
End
flight
S2
7 September 2001
S3
S7
Reservations
COOPIS 2001 - Trento, Italy
22
Web Services Architecture
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
7 September 2001
COOPIS 2001 - Trento, Italy
23
Web Services Definition
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
“Web services are content and software processes
delivered over the Internet
using loosely coupled messages
(and increasingly, XML interfaces)
that ‘service’ a particular set of user needs.”
David Smith, Gartner Group
11 October 2000
7 September 2001
COOPIS 2001 - Trento, Italy
24
Web Services Characteristics
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
• XML based
• Locatable via a registry
• Accessible over the web
• Loosely-coupled
• Message-based
• Standard Web Protocols
7 September 2001
COOPIS 2001 - Trento, Italy
25
What’s Different with Web
Services?
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
• Standardization moves to Schema/DTD space
– Focus on exchange of complete documents rather than just
core information
– Versions of schemas used critical to communication
• Interoperability rather than Portability but…
– As with standard protocols, little work in self-defining
documents and interchange (vs. dynamic interface
discovery)
– Still have to code business logic and create/parse XML
– Closer to EDI than to traditional networking
– Long-lived business transactions (not 2PC)
– Simpler model of interaction than businesses currently use
7 September 2001
COOPIS 2001 - Trento, Italy
26
Web Services Framework
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
• Wire (or exchange format)
– The components representing what is sent during a given
exchange; data, the envelope and the metadata necessary
for a meaningful transmission
• Description
– The specifications required for the format definition, use or
application of the wire components
• Discovery
– The specifications that provide the mechanisms for
automatic searching and discovery of the components in the
Wire and Description stacks
7 September 2001
COOPIS 2001 - Trento, Italy
27
Wire (or exchange format)
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
• Message Envelope and controlled extensibility (XML)
– Versioning
– Mandatory and optional message parts
– Message components for different intermediaries
• Binary attachments
• Message Exchange (Routing)
– The means to designate different intermediaries and their
expected response.
– Intermediaries identified by service type
7 September 2001
COOPIS 2001 - Trento, Italy
28
Description
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
• XML Schemas
• Service Description
– Web Services Definition Language (WSDL)
– Messages, sent and received, protocols used to exchange
them, logical ports associated with services, binds to
address(es)
– Functionally analogous to IDL
• Process Flow Orchestration
– Valid sequences of messages
– Relationships between messages and the business
processes they initiate
– Relationships between messages and the (external)
contractual provisions they pertain to.
7 September 2001
COOPIS 2001 - Trento, Italy
29
Discovery
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
• Inspection
– Protocols enabling a web service to obtain metadata about
itself such as
• a service description
• process flow or
• related contracts.
• Discovery (UDDI)
– A protocol to obtain identifiers of services based on given
characteristics
– Functionally similar to CORBA Trader
7 September 2001
COOPIS 2001 - Trento, Italy
30
Conclusion
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
• The Next Generation Web will be based on
communicating programs not browsers
• These programs need a common language to
exchange information
• XML is being adopted as that common language
– meets the functional requirements
– has support from all major vendors
– is an open standard
• “The brunt of XML’s Web impact will be on
restructuring the economics of Web-based
transactions” - Rita Knox, Gartner Group
7 September 2001
COOPIS 2001 - Trento, Italy
31