designing distributed object systems n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Designing Distributed Object Systems PowerPoint Presentation
Download Presentation
Designing Distributed Object Systems

Loading in 2 Seconds...

play fullscreen
1 / 46

Designing Distributed Object Systems - PowerPoint PPT Presentation


  • 140 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Designing Distributed Object Systems' - ady


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
designing distributed object systems

Designing Distributed Object Systems

Ian Gorton, Paul Greenfield

Advanced Distributed Software Arhitectures and Technologies

CSIRO, Sydney

who is cmis
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
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
Architecture Issues

Physical constraints

Security

Transactions

Management

Solution Space

Fault

Tolerance

Technologies,

Components

Performance

Requirements/Scalability

Testing

Trade-offs between competing forces can be extremely complex

adsat capabilities
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 e-commerce issues
what is middleware
What is Middleware?

Software plumbing

and

associated services

for building

distributed systems

basic distributed systems blocks
Basic distributed systems blocks

The Next Big Thing??

  • Provides high(ish) level facilities (RPC, RMI) for building distributed system communication infrastructures
  • Hides low level issues from the programmer through abstraction

Component

Technologies

CORBA/RMI/COM

TCP/IP

Network/OS

associated services
Associated Services

Security

Transactions

Directory

Messaging

  • 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
Middleware Technologies
  • CORBA
  • COM
  • Java
  • DCE
  • Proprietary, ie
    • Forte, Tuxedo, CICS, etc..
    • TIBCO, MQ, etc..
so what is it good for
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
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
Some Gartner Survey Figures
  • To develop a currently competetive e-commerce 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
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
Solving Business Problems with Middleware
  • Legacy system access
  • Data integrity
  • Scalability
  • Availability
  • Client access
legacy system access
Legacy System Access

AS400

CICS\VSAM

  • Ease legacy system integration by providing standard interfaces (wrappers)
  • Hides details of legacy systems from clients

MQ

CICS

Gateway

Server

Server

Middleware

Wrappers

Clients

Clients

data integrity
Data Integrity

Oracle

SQL Server

  • Ensuring data integrity with distributed databases requires transactions
  • Transactions ensure ACID properties

TP Service

SQL

ODBC

Server

Server

Clients

Clients

scalability
Scalability
  • Middleware supports scaling system performance by service replication
  • This isn’t free - it requires good architecture!

Server

Server

Clients

Clients

availability
Availability
  • Replication enhances fault tolerance and improves availability
  • Graceful degradation, lower performance but it keeps running

Server

Server

Clients

Clients

client access
Client Access
  • Client access enhanced due to:
    • physical distribution
    • variety of access technologies (ie Internet protocols, IIOP, COM) and available bridges.

Clients

HTTP

WWW

Server

Server

IIOP

COM Bridge

IIOP

Clients

Clients

enterprise middleware products
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 :-}
slide22

N-Tier System Architecture

Client layer (browser, applets, apps)

http, IIOP, COM, RMI, XML

WWW server (WWW server, JSPs, ASPs)

Security

IIOP, COM, RMI, XML

Transactions

Business Logic (CORBA objects, EJBs, COM+)

SQL, ODBC, JDBC, XA

Data Access (DBMSs)

standards wot standards
Standards (wot standards?)
  • CORBA - OMG
  • Java 2 Enterprise Edition (EJB+JMS+JNDI+…) - Sun
  • COM+ - Microsoft
  • MQ Series - IBM
  • TIBCO multicast protocol..
  • ???
corba
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
slide25
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)
slide26
EJBs
  • EJBs are server-side components
  • Separate business logic from infrastructure code

EJB

EJB

EJB

EJB Container

slide27
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
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
ACID properties
  • A set of operations that have ACID properties:
    • Atomic
    • Consistent
    • Isolated
    • Durable
  • Classic example - a bank account transfer
java transaction example
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

}

xa interface details
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
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

Stocks

Loans

Accounts

BusLoan

HomeLoan

AccountService

NewStock

Service

QueryStock

Example Name Space
security
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
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
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 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 pages1
Java Servlets/Server Pages

invoke

query

URL

JSP

App.

Server

Component

results

html

WWW

Server

invoke

query

Servlet

HTML

results

html

extensible markup language xml
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
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
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
Extensible Style Language (XSL)
  • XML ignores presentation of data
  • XSL stylesheets define presentation of XML doc in some format

XML

Doc

HTML, PDF,

etc...

Compiler

XSL

in browser or

WWW server

xml xsl impact
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
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’...