<<

Extreme G22.3033-007

Session 6 - Sub-Topic 1 Distributed Communications Enabling

Dr. Jean-Claude Franchitti

New York University Science Department Courant Institute of Mathematical Sciences

1

Enterprise Web Applications

2

1 Basic Web Applications

Documents

DB Internet Connection Databases

Client Web Enterprise Browser Server Data CGI, SSJS, NSAPI, ISAPI, WAI, Etc.

3

Robust Web Applications

Presentation Business Logic Tier Data Tier Tier

HTTP Documents Databases

Web Web Browser Servers

Enterprise C/ IIOP Applications

Application Server(s)

Rich Clients Legacy (Java C/C++, VB) Systems4

2 Application Servers Internals

Client Application Server

Scalable, HTML Application Logic Reliable (Java, C/C++) Application Architecture

Java

Load Fail Safe Persistence Versioning Balancing Manager Services Pre-Built System & C/C++ JDBC Connection Results Transactions Application Data Access Pooling Caching Services State / Messaging Session Mgt Directory Security

Visual Basic Distributed Object Infrastructure

Network Services

Application Servers Technical Architectures

Open and Extensible

Extensions Application • TP Monitors Server • Legacy (Java, C/C++) • Client/server

Extensions Data Sources Browsers Web •RDBMS Servers • Oracle ISAPI, NSAPI, CGI NSAPI, ISAPI, •Informix Web Connectors • Sybase (HTTP, KCP, KCP, IIOP) (HTTP, •DB2

Protocol Manager •SQL Server Open Client • OODBMS Embedded (bundled) •ODI OCL IONA ORB • ODBC & JDBC Data Access Engine

Platforms Rich Clients Java, C/C++,VB •Sun Solaris •HP-UX • SGI Irix • Windows6

3 Application Server Categories

• CORBA-based (OMA-based) • Java-based (J2EE-based) • COM+-based • HTML-Extended • XML-based • Adaptive • http://www.appserver-zone.com/guide.asp lists 77+ unclassified products !!! • All categories operate on of a DOC layer 7

Application Servers Selection Criteria

Q Usability

Q Scalability

Q Security

Q Manageability

Q Reusability

Q Support

Q Skills

Q The underlying DOC platform is a driver in the selection process 8

4 Distributed Object Computing and Application Servers

9

Computing Layers & Facilities

Q Course Outline

Q Distributed Object Computing

Q Application Server Categories

Q Client Interfaces (MOM & POP Applications)

Q Web Application Modeling (UML/XML)

Q Adaptiveness & Model-Driven Application Generation

10

5 Distributed Object Computing Models

Q CORBA

Q EJB & J2EE

Q COM+

11

CORBA

12

6 Common Object Request Broker Architecture

Q Open distributed computing infrastructure/platform (OMA)

Q independent DOC environment

Q Based on OMG IDL, and IIOP/GIOP

Q Standardized by the OMG

Q Automates common networking programming tasks

Q Object registration, location, activation

Q Request demultiplexing

Q Framing and error handling

Q Parameter marshalling and demarshalling

Q Operation dispatching 13

New in Corba 3

Q Component Model (CCM)

Q Quality-of-service control

Q Messaging invocation model

Q Tightened integration with the Internet

Q POA (Portable Object Adapter)

Q EJB and Java support

Q OMG specifications for analysis and design, and application interoperability

Q UML, MOF, XMI, Common Warehouse Model 14

7 Overview of Corba: OMG Reference Model Architecture

15

Object Services (CORBAservices)

Q Domain-independent interfaces used by many distributed object programs

Q Naming Service: allows clients to objects based on names

Q Trading Service: allows clients to find objects based on their properties

Q Other services: persistence, lifecycle management, security, transactions, event notification, etc.

16

8 Common Facilities (Horizontal CORBAfacilities)

Q Horizontally-oriented interfaces

Q Oriented towards end-user applications

Q E.g.: Distributed Document Component Facility (DDCF)

Q Compound document facility based on OpenDoc

Q Allows for presentation and interchange of objects based on a document model (.g., linking of spreadsheet object into a report document)

Q Printing, Secure Time, Internationalization, and Mobile Agent Facilities 17

Domain Interfaces (Domain CORBAfacilities)

Q Role similar to Object Services and Common Facilities

Q Oriented towards specific application domains

Q E.g., Product Data Management (PDM) Enablers for the manufacturing domain

Q Other possibilities in the telecommunications, medical, and financial domains

18

9 Application Interfaces

Q Interfaces developed for a given application

Q Not standardized

Q Might become candidates for future OMG standardization

19

CORBA ORB Architecture

20

10 Object Implementation

Q Defines operations that implement a CORBA IDL interface

Q Object implementations can be written in a variety of languages

Q C, C++, Java, , Ada, etc.

21

Client

Q Program that invokes an operation on an object implementation

Q Accessing the services of a remote object is transparent to the caller

Q As simple as calling a method on an object

Q E.g., obj->op(args)

22

11 Object Request Broker (ORB)

Q Provides mechanism for transparently communicating client requests to target object implementations

Q Simplifies distributed programming by decoupling the client from the details of the method invocations

Q Client requests appear to be local procedure calls

Q ORB is responsible for finding the object implementation, activating it, delivering the request to the object, and returning a response to the caller 23

ORB Interface

Q Abstract interface for an ORB

Q ORB may be implemented in various ways

Q One or processes, of libraries, etc.

Q Interface provides various helper functions

Q Converting object references to strings

Q Creating argument lists for requests made through the dynamic invocation interface

24

12 CORBA IDL Stubs and Skeletons

Q Serve as the “glue” between the client and server applications, and the ORB

Q CORBA automates the transformation between CORBA IDL definitions and the target programming language

Q Use of compiler reduces the potential for inconsistencies between client stubs and server skeletons

Q Use of compiler facilitates automated optimizations 25

Dynamic Invocation Interface (DII)

Q Allows a client to directly access the underlying request mechanisms provided by an ORB

Q Applications use the DII to dynamically issue requests to objects without requiring IDL interface- specific stubs to be linked in

Q DII allows clients to non-blocking deferred synchronous (separate send and receive operations) and oneway (send-only) calls

26

13 Dynamic Skeleton Interface (DSI)

Q Server side analogue to the client side DII

Q Allows an ORB to deliver requests to an object implementation that does not have compile-time knowledge of the type of the object it is implementing

Q Client making the request has no idea whether the implementation is using type-specific IDL skeletons or dynamic skeletons

27

Object Adapter

Q Assists the ORB with delivering requests to the object

Q Assists the ORB with activating the object

Q Associates object implementation with the ORB

Q Can be specialized to provide support for certain object implementation styles (e.g., OODB object adapters for persistence)

28

14 ORB Products

Q BEA WLE (formerly BEA M3)

Q Expertsoft CORBAplus

Q IBM WebSphere Product Family (Component Broker)

Q Inprise VisiBroker Middleware Products

Q IONA Orbix

Q Merant CORBA Technology for COBOL

Q PeerLogic DAIS

Q ObjectSpace Voyager

29

Questions?

30

15 EJB and Java 2 Platform Enterprise Edition

31

Java 2 Platform, Enterprise Edition

Q Released on 9/27/99

Q Complete development platform architected to meet the needs of enterprise application development

Q Makes all Java APIs and functionality available and accessible in a well integrated fashion

Q Simplifies the development, deployment, and management of multi-tier server-centric solutions

Q Built on Enterprise JavaBeans component architecture 32

16 Java Technology Findings

Q Open standards are better than closed

Q Write Once, Run Anywhere beats proprietary vendor- technology

Q Findings motivate the creation of a single, unified platform with an easy-to-use model for building distributed ebusiness applications across a wide array of products

33

J2EE Platform and Enterprise Computing Solutions

34

17 J2EE Key Propositions

Q Simplified enterprise development

Q Supports various pieces of server software

Q Industrial strength scalability

Q Legacy connectivity

Q Open platform (choice/flexibility)

Q Security

Q Portability

35

J2EE Platform: The Whole is Greater than the Sum of its Parts

36

18 J2EE: A Complete Computing Environment

Q Platform Specification

Q Lists required elements of the platform

Q Lists policies to follow for a valid implementation

Q Reference Implementation

Q Semantically correct to test against

Q Compatibility Test Suite

Q API-level compatibility, component-level tests, end-to-end compatibility

Q Application Programming Model: java.sun.com/j2ee 37

The Three Cs: Components, Containers, Connectors

38

19 J2EE: Components

Q Enterprise JavaBeans

Q Server-side solutions can be built without regards for the database, transaction server, or application they run on

Q Servlets

Q Run on vast majority of web servers

Q JavaServer Pages

Q Dynamic content leverages off the full power of Java 39

J2EE: Containers

Q Containers provide high-performance, scalable environments for J2EE-enabled servers

Q J2EE-enabled servers support EJB-based components, servlets, and JSP-based pages

40

20 J2EE: Connectors

Q Connectors allow J2EE-based solution to preserve, protect, and leverage off of existing enterprise investments

41

J2EE: Unifying the Three Cs

Q Single platform

Q Standard platform-independent technology

Q Applications built with components can be run on any J2EE server, and are able to talk to enterprise- class systems that exist today

42

21 J2EE Technologies

Q JavaIDL

Q RMI/IIOP

Q JDBC

Q JDBC 2.0 Client parts

Q JNDI

Q Servlets

Q JavaServer Pages

Q JavaMail, JavaBeans Activation

Q JTS, EJB, JTA, JMS, Connector/Resource Mgmt. Comp.

Q XML (platform independent data) 43

Questions?

44

22 Goals

Show by example that COM+ makes it: • As easy to develop Server Components as it is to develop Client Components • As easy to deliver enterprise apps as it is to deliver workgroup apps!

45

Technology Scenario

COM+ Services: COM+ Events MTS Services: Security Transactions Load Resource Pooling MTS Balancing Security Queued Administration Components In Memory COM Database Compensating COM+ The Model Resource Tools Support The caring, sharingManager Multi-Language Administration Discovery (QI) environment for your components

46

23 Application Scenario

• Online service like MSN or AOL • User login causes two databases to be updated – Customer Billing Log – Customer Login Status • Total connect time is tracked • User is notified of various activities while they are logged in (i.e. chat rooms) 47

Application Flow Web clients Web infrastructure Business applications Logon Existing Existing BillingExisting SystemBillingExisting Security SystemBilling Systembilling billing system

Real-time Existing Existing Profile-directed BillingCustomer SystemBilling information Systemonline system Content Existing Logoff Existing BillingExisting Billing SystemBillingExisting SystemBilling Systembilling system Existing BillingExisting SystemBillingOther Systemsystems48

24 Application Object Model

dbCustomer Billing update Database

dbCustOnline Customer Database BusCustomer Login

OnlineEvents LoginEventClass dbOnlineEvent Update

dbCustomer Preferences IMDB

49

Application Requirements

• Ultimate customer • Keep billing, Customer response and Online and other availability systems consistent • Always accept Logon • Real-time two way • No freebies! Always bill on who is on for entire • Real-time info on what time online is going on • Use existing • Flexible administration billing system • Maximize use of • Use existing platform, minimize dev resources development time

Many others… 50

25 Tackling The Application Requirements

• Ultimate customer • Keep billing, Customer response and availability Online and other systems • Always accept legitimate consistent login • Real-time two way info on • No freebies! Always bill who is on for entire • Real-time info on what is time online going on • Use existing • Flexible Administration billing system • Maximize use of platform, • Use existing minimize development dev resources time •Others… 51

Requirement: Simplify Server Side Development • Issues: – Threading – Synchronization – Data Base Connection pooling – Communications - front and back ends

Applications Appliances 52

26 Requirement: Simplify Server Side Development

• Solution: core COM+ Services – You write a “single user” component as though it were the only user of DB resources – COM+ provides the rich service environment makes your component multi-user, multi-threaded and resource pooled

COM+ Server process

Application Concurrency Security Application client Services... IFoo Components 53

Core Application Services

•COM+ provides: – Administrator controlled process placement – The context – Sharing automatically managed by COM+ – Auto Completion (or explicit SetComplete, SetAbort) • All you have to do: – Stick with the model (or be aware of consequences of leaving model) – (Basic component walkthrough)

54

27 Tackling The Application Requirements

• Ultimate customer • Keep billing, Customer response and availability Online and other systems • Always accept legitimate consistent login • Real-time two way info on • No freebies! Always bill who is on for entire • Real-time info on what is time online going on • Use existing • Flexible administration billing system • Maximize use of platform, • Use existing minimize development dev resources time •Others… 55

Flexible Administration

• Issues – Different Administration dimensions – Application Distribution – Connectivity Now!

56

28 Flexible Administration

• Solution: COM+ Administration – Features: extends administration to all COM Components, supports administration of new services and provides a complete programmatic interface for installation, configuration and deployment automation

Catalog Attributes

57

Administrative Model

• Applications are defined and components are installed in the applications that they are to run in • Attributes are set declaratively on the components • Transactions • Security roles • Activation properties • SDK - complete automation capabilities

58

29 Administration Example

• Walkthrough of Billing system deployment • Billing components are updated on the dev machine • The Application can be exported manually: – Application information and the DLLs to be moved to the accounting server and… – ActiveX® Control is downloaded to the client using the CODEBASE tag and a CLSID –Or… • Auto download of components on demand • Requires Windows 2000 Directory Service

59

Tackling The Application Requirements

• Ultimate customer • Keep billing, Customer response and availability Online and other systems • Always accept legitimate consistent login • Real-time two way info on • No freebies! Always bill who is on for entire • Real-time info on what is time online going on • Use existing • Flexible administration billing system • Maximize use of platform, • Use existing minimize development dev resources time •Other… 60

30 Database Consistency • Issues: – Updating multiple Resource Managers • (DB, IMDB, MSMQ) – Avoiding conflicts – Multiple simultaneous users – Indeterminate numbers of users

Billing dbCustomer Database update

BusCustomer Other Data Login Sources

dbCustomer Customer Online Database 61

Database Consistency

• Solution: COM+ Transaction Services – Features: • System provided transactions on activation, commit on deactivation, abort on errors • System enforced • Manual (SetComplete, SetAbort) or Auto completion

COM+ Server Process

Application Application Transaction Application componentsApplication clients services Clients IFoo components

62

31 Consistency Example

• COM+ Transaction Services – Transaction code and attribute walkthrough – Bus_Customer calls db _CustomerBilling and db_CustOnlineStatus – Distributed transaction occurs (transparently) when user logs on – Without Transactions customer could be billed for time even if they failed to complete the logon or… – They might not get billed even though they successfully logged on – Auto Completion (not in the Preview) – Transaction code and attribute walkthrough 63

Tackling The Application Requirements

• Ultimate customer • Keep billing, Customer response and availability Online and other systems • Always accept legitimate consistent logon • Real-time two way info on • No freebies! Always bill who is on for entire • Real-time info on what is time online going on • Use existing • Flexible administration billing system • Maximize use of platform, • Use existing minimize development dev resources time •Other… 64

32 Application Security • Issues: – Security Dimensions – Distributed application – Components being Compounded

dbCustomer Update Customer login dbCustomer Online

65

Application Security • Solution: COM+ Security Services: – Role-based access control on classes, interfaces and METHODS, – mapping roles to Windows 2000 domain accounts

COM+ Server process

Application Security Application client service IFoo Server

66

33 Security Example

• Application context – Customer billing information needs to be protected – When a user logs on the bus_Customer component running on the Web server will call the accounting server – Using roles the Web server will be allowed to call the accounting server but you may not call the component directly – Roles established in package definition – Roles established in the IDE – Code and Attribute walkthrough

67

Tackling The Application Requirements - The Story So Far

• Ultimate customer • Keep billing, Customer response and availability Online and other systems • Always accept legitimate consistent logon • Real-time two way info on • No freebies! Always bill who is on for entire • Real-time info on what is time online going on • Use existing • Flexible administration billing system • Maximize use of platform, • Use existing minimize development dev resources time •Other… 68

34 Tackling Other Application Requirements

• Ultimate customer • Keep billing, Customer response and availability Online and other systems • Always accept legitimate consistent logon • Real-time two way info on • No freebies! Always bill who is on for entire • Real-time info on what is time online going on • Use existing • Flexible administration billing system • Maximize use of platform, • Use existing minimize development dev resources time •Other… 69

Even Easier! • Coming soon – Direct manipulation of attributes from IDE – Direct manipulation of COM+ administration from IDE • The COM+ Wizardo

70

35 Conclusion

COM+ makes it: • As easy to develop Server Components as it is to develop Client Components • As easy to deliver enterprise apps as it is to deliver workgroup apps!

71

Call To Action

• Architecting, designing, developing: – Assume COM+ level of service and use Windows 2000 now • Deploying and in production: – Use Microsoft Transaction Server now - your components will be uplifted when COM+ is installed • Everything discussed is a standard feature of Windows 2000

72

36 References on COM+

• Books – Chappell. Understanding ActiveX and OLE – Eddon. Inside DCOM –Grimes. Professional DCOM – Box. Essential COM • COM Home – http://www.microsoft.com/com/ • Windows 2000 Platform SDK – NT 5.0 Beta 2 or later 73

Questions?

74

37