Designing Distributed Object Systems

Download Report

Transcript Designing Distributed Object Systems

Designing Distributed Object
Systems
Ian Gorton, Paul Greenfield
Advanced Distributed Software Arhitectures and
Technologies
CSIRO, Sydney
Who is CMIS?
• CSIRO is Australia’s largest scientific R&D
organisation and has around 7000 staff
• CSIRO Mathematical and Information Sciences
is
– Australia’s premier group of mathematicians and Information
Technology specialists working to improve performance in Australian
industry.
ADSaT
• 11 person R&D group, Sydney and
Canberra
• Involved in software engineering R&D
• Specifically looking at the problems of
distributed systems, eg
• architecture, components, technologies
• testing and analysis
• performance, scalability, reliability
Architecture Issues
Physical constraints Transactions Security
Management
Fault
Tolerance
Solution Space
Performance
Requirements/Scalability
Technologies,
Components
Testing
Trade-offs between competing
forces can be extremely complex
ADSaT capabilities
• Designing software architectures
• Expertise in enterprise distributed
technologies (eg COM, ORBs, DCE,
Java), transactions, databases
• Research based around software
architectures
• In-depth knowledge of Internet and ecommerce issues
Week1
Distributed Systems Technology
Overview
Acronym frenzy!!
What is Middleware?
Software plumbing
and
associated services
for building
distributed systems
Basic distributed systems blocks
• Provides high(ish) level
The Next Big Thing??
facilities (RPC, RMI) for
Component
building distributed system
Technologies
communication
CORBA/RMI/COM
infrastructures
• Hides low level issues
TCP/IP
from the programmer
through abstraction
Network/OS
Associated Services
Messaging
Directory
Transactions
Security
• Basic middleware
add-ons
• Fulfill common
application needs in
distributed systems
• See CORBA
Services spec for an
example and
comprehensive list
Middleware Plumbing
Middleware Technologies
•
•
•
•
•
CORBA
COM
Java
DCE
Proprietary, ie
– Forte, Tuxedo, CICS, etc..
– TIBCO, MQ, etc..
So What is it Good For?
• Geek answer…
• Middleware makes it feasible ‘for mere
mortals’ to build distributed software
systems that are:
– high-performance, scalable
– reliable, high availability
• Don’t be fooled. Distributed systems are
inherently difficult to build.
Er..try me again?
• The bottom line answer...
• Businesses need a WWW presence
• secure, transactional accesses to business systems
• Integration
• mergers, acquisitions, virtual enterprises
• Internet competition and time-to-market
Some Gartner Survey Figures
• To develop a currently competetive ecommerce site:
• 5 months average duration (some 1 year+)
• uses more than 1 consulting organization
• cost average US$1 million (~$350K-$2m+)
• 79% costs were labor, 10% s/w
• No enterprise WWW site was ‘on budget’
Gartner Group Predictions
•
•
•
•
Simple site - $300k-$1 million
Competetive site - $1-5 million
Market leader - $5-20 million
Site costs will increase 25% annually in
next few years
Solving Business Problems with
Middleware
•
•
•
•
•
Legacy system access
Data integrity
Scalability
Availability
Client access
Legacy System Access
• Ease legacy system
integration by
providing standard
interfaces (wrappers)
• Hides details of
legacy systems from
clients
AS400
MQ
Server
CICS\VSAM
CICS
Gateway
Server
Middleware
Wrappers
Clients
Clients
Data Integrity
Oracle
• Ensuring data integrity
with distributed
TP Service
databases requires SQL
transactions
Server
• Transactions ensure
ACID properties
Clients
SQL Server
ODBC
Server
Clients
Scalability
• Middleware
supports scaling
system
performance by
service replication
• This isn’t free - it
requires good
architecture!
Server
Clients
Server
Clients
Availability
• Replication enhances
fault tolerance and
improves availability
• Graceful degradation,Server
lower performance
but it keeps running
Clients
Server
Clients
Client Access
• Client access
enhanced due to:
– physical distribution
– variety of access
technologies (ie
Internet protocols,
IIOP, COM) and
available bridges.
Clients
HTTP
Server
IIOP
Clients
WWW
IIOP Server
COM Bridge
Clients
Enterprise Middleware Products
• Some terminology first:
• Middleware - basic products
• Orbix, Visibroker, DCE, Java RMI, COM
• Object Transaction Monitor (OTM)
• middleware plus enterprise systems capabilities,
OrbixOTM, BEA WebLogic
• Application Server
• cynical answer - new name for OTMs with Java
2 Enterprise Edition support :-}
N-Tier System Architecture
Client layer (browser, applets, apps)
http, IIOP, COM, RMI, XML
WWW server (WWW server, JSPs, ASPs)
IIOP, COM, RMI, XML
Business Logic (CORBA objects, EJBs, COM+)
SQL, ODBC, JDBC, XA
Data Access (DBMSs)
Standards
(wot standards?)
• CORBA - OMG
• Java 2 Enterprise Edition
(EJB+JMS+JNDI+…) - Sun
• COM+ - Microsoft
• MQ Series - IBM
• TIBCO multicast protocol..
• ???
CORBA
• OMG is vendor consortium
• CORBA Interface Definition Language
(IDL)
• Internet Inter-ORB Protocol (IIOP) (GIOP
over TCP/IP)
• CORBA services, eg transactions, naming,
events, security
Java
• Remote Method Invocation (RMI)
• Sun’s JRMP or RMI-over-IIOP
• Enterprise Java Beans (EJBs)
• Java Transaction Service (JTS)
• Java mapping to CORBA OTS
• Java Naming and Directory Interface
(JNDI)
• Java Messaging Service (JMS)
EJBs
• EJBs are server-side components
• Separate business logic from
infrastructure code
EJB
EJB
EJB Container
EJB
EJBs
• EJBs capture design patterns:
• Stateless Session Bean
• Stateful Session Bean
• Entity Bean (bean or container managed)
• Containers/EJB Servers provide:
•
•
•
•
transaction policies
security policies
database connection pooling
multi-threading
Transaction Service
• Essential for distributed transaction
processing
• Manages consistent updates to multiple
databases
• CORBA OTS, Java JTS, M’soft MTS
• X/Open DTP standards - XA
ACID properties
• A set of operations that have ACID
properties:
–
–
–
–
Atomic
Consistent
Isolated
Durable
• Classic example - a bank account transfer
Java Transaction Example
try {
// Create a transaction.
transaction.begin();
// Invoke operations in transaction
savingsAccount.makeWithdrawal(50)
chequeAccount.makeDeposit(50);
// Commit the transaction.
transaction.commit(true);
} catch (APP_ERROR ex) {
transaction.rollback()
} catch (TRANSACTION_ROLLEDBACK ex) {
// handle rollback
}
Two-Phase Commit
Application Program
commit
Transaction Manager
Prepare to
commit
Acknowledge
Response
(commit
of abort)
commit or
abort
Resource Manager (RM)
X/Open Distributed TP Reference
Model
Application Program
TX
Transaction Manager
XA
Resource Manager
(RM)
TxRPC
XATMI
CPI-C
XA+
Communications
Resource
Manager(CRM)
XA Interface details
• Database must implement an XA library
compatible with transaction service
product
•
•
•
•
embedded SQL
ODBC/DTC for SQL Server
OCI for Oracle
??? Others...
• JDBC-2 incorporates XA support
• No XA - no distributed transactions
Directory Service
• Clients need to get references to server
objects
• Server objects advertise their reference in a
directory service
• Clients query the directory service to
retrieve desired reference
• CORBA Naming service, JNDI, LDAP
Example Name Space
Bank
Loans
Stocks
Accounts
BusLoan
NewStock
Service
QueryStock
HomeLoan
AccountService
Security
• Provide:
• user authentication
• user/service authorization
• encryption
• Secure Socket Layer (SSL)
• public key infrastructure
• asymmetric private and public keys
• X.509 digital certificates
Messaging
• Many apps require asynchronous
communications
•
•
•
•
•
CORBA event/notifcation/messaging service
Java Messaging Service
TIBCO/Rendezvous
MQ Series
others…
• More on these later...
WWW Server Tier
• Need to accept HTML requests via HTTP
post or get
• CGI scripts first used to add processing
capability:
• spawn new process for each request
• slow, doesn’t scale
• Proprietary improvents
• Netscape’s NSAPI, Microsoft’s ISAPI
Java Servlets/Server Pages
• Java platforms includes specs for:
• servlets
• Java Server Pages (JSPs)
• Java servlets launched by WWW Server in
response to URL request
• JSP’s allow code (eg Java beans) for
formatting dynamic content to be embedded
in HTML page
Java Servlets/Server Pages
invoke
URL
JSP
WWW
Server
HTML
query
html
results
invoke
Servlet
html
query
results
App.
Server
Component
Extensible Markup Language
(XML)
• Subset of SGML
• Standard textual format for structured
documents
• Document Type Definition (DTD) defines document
structure with tags for each entry in the document
• XML document instance contains both tags and
document data
• Text format is easy to process
Sample DTD
<?xml encoding="US-ASCII"?>
<!ELEMENT orders (order)*>
<!ELEMENT order (header,item+,total)>
<!ELEMENT header (billing_info,shipping_info)>
<!ELEMENT billing_info (name,address,credit_card)>
<!ELEMENT shipping_info (name,address)>
<!ELEMENT name (given,family)>
<!ELEMENT address (street,city,state,zipcode,country,phone)>
<!ELEMENT item (product_id,product_name,quantity,price)>
<!ELEMENT credit_card (#PCDATA)>
<!ELEMENT given (#PCDATA)>
<!ELEMENT family (#PCDATA)>
[…ELEMENTS MISSING…..]
<!ELEMENT product_id (#PCDATA)>
<!ELEMENT product_name (#PCDATA)>
<!ELEMENT quantity (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT total (#PCDATA)>
Sample (Incomplete) XML
Document
<?xml version="1.0"?>
<!DOCTYPE orders SYSTEM "orders.dtd">
<orders>
<order>
<header>
<billing_info>
<name>
<given>John</given>
<family>Doe</family>
</name>
<address>
<street>555 Main Street</street>
<city>Mill Valley</city>
<state>California</state>
<zipcode>94520</zipcode>
<country>USA</country>
<phone>707 555-1000</phone>
</address>
Extensible Style Language (XSL)
• XML ignores presentation of data
• XSL stylesheets define presentation of
XML doc in some format
XML
Doc
XSL
Compiler
in browser or
WWW server
HTML, PDF,
etc...
XML/XSL Impact
• Major vendor support/momentum
• Presentation
• Decoupling content/presentation is good!
• Presentation is the browser’s job
• Data interchange
• business-to-business e-commerce
• DOM API - XML parsers produce a DOM
representation of an XML document
• Microsoft’s SOAP
Summary
• Distributed object system technology is a
key part of building enterprise distributed
systems
• There’s a lot of :
• design issues
• technology issues
• plain hard issues (ie testing)
• This course is just the ‘entrée’...