CORBA & RMI (IIOP)

download CORBA & RMI (IIOP)

of 40

Transcript of CORBA & RMI (IIOP)

  • 8/3/2019 CORBA & RMI (IIOP)

    1/40

    The Java MessageThe Java Message

    ServiceService

    CORBA Architecture & RMI/IIOP Protocol

  • 8/3/2019 CORBA & RMI (IIOP)

    2/40

    Existing Legacy LayerExisting Legacy Layer

    Instant Messaging LayerInstant Messaging Layer

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    WEB SERVER (= / +)Java Application

    Aglet/ Miglet

    CORBA ApplicationConverter (C++)

    CORBA/IIOP Client RMI/IIOP Client CORBA/IIOP Client

    APPLICATION SERVER (RMI/IIOP Server)

    Connector (AI)

    EJB Entity Bean

    EJB Session Bean

    COBOL / CICS

    SIP Communicator

    VOIP PBX PSTNWAP GatewayBlack Box

    JABBER

    ServletServlet

    Application LayerApplication Layer

    Business LayerBusiness Layer

    Network LayerNetwork Layer

    A

  • 8/3/2019 CORBA & RMI (IIOP)

    3/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    SMS Broker

    MMS Service

    WAP Service

    A

    Telecommunication ServicesTelecommunication Services

    GPRS (General Packet Radio Service) 2.5 GenerationGPRS (General Packet Radio Service) 2.5 Generation

    EDGE (Enhanced Data Rates for GSM Evolution)EDGE (Enhanced Data Rates for GSM Evolution)

    33rdrd GenerationGeneration

    WCDMA (Wide-Coded Dimension Multiple Access)WCDMA (Wide-Coded Dimension Multiple Access)

    2.5 Generation2.5 Generation

    WTCDMA (Wide Time-Coded Dimension MultipleWTCDMA (Wide Time-Coded Dimension Multiple

    Access) 2.5 GenerationAccess) 2.5 Generation

    HSDPA (High-Speed Downlink Packet Access)HSDPA (High-Speed Downlink Packet Access)

    mid 3mid 3rdrd GenerationGeneration

    WAP GATEWAYWAP GATEWAYSMS BoxSMS BoxWAP BoxWAP Box

    Bearer BoxBearer Box

    TCPTCP TCPTCP

    WAP

    SMS

    SMSC

  • 8/3/2019 CORBA & RMI (IIOP)

    4/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    Hardware Requirement SpecificationHardware Requirement Specification

    Technical Specifications 802.11A 802.11B 802.11G Bluetooth 1XRTT

    Speed 54 MBPS 11MBPS 54 MBPS 1 MBPS / 768MBPS

    153.6 KBPS

    Frequency 5 GHz 2.4 GHz 2.4 GHz 2.4 GHz Frequency of Host

    Operating Distance 100 Meter 150-300ft = 100 M 150 300ft = 100 M 33 ft / 10 M Frequency of

    Host

    Application WLAN / Wi-Fi WLAN / Wi-Fi WLAN / Wi-Fi PAN CDMA

  • 8/3/2019 CORBA & RMI (IIOP)

    5/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    Application Server :: Invocation Process

    How toInvoke

    Events

    Time

    Manual

    Called

    Process Engine

    Plug-inFramework

    JMS Queue

    Processor

    Processor

    API or Worklist

    Sub-flow

    How toIntegrate

    JMSApplications

    EJBComponents

    Plug-ins

    XML

    RMI/IIOP

    TemplateStore

    InstanceStore

    Weblogic /Application Layer

    IntegrationStudio

    Weblogic /Applicatioon Layer

    IntegrationStudio

  • 8/3/2019 CORBA & RMI (IIOP)

    6/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    OBJECTS Invoking with CORBA

    Object Request Broker

    WP Spreadsheet

    Application Objects Common Facilities

    Objects Services

    Help Email Browser

    Storage Transaction

    ManagementQueries Versioning Security

  • 8/3/2019 CORBA & RMI (IIOP)

    7/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    CORBA ::Java Message Service Server (RMI/IIOP) :: Network Layer

    Hypertext TransferHypertext Transfer

    Protocol (HTTP)Protocol (HTTP)File TransferFile Transfer

    protocol (FTP)protocol (FTP)Internet Message AccessInternet Message Access

    Protocol (IMAP)Protocol (IMAP)

    Application LayerApplication Layer

    Protocol (example)Protocol (example)

    Secure Socket Layer (SSL)Secure Socket Layer (SSL)

    Transmission Control Protocol (TCP)Transmission Control Protocol (TCP)

    Internet Protocol (IP)Internet Protocol (IP)

    Network LayerNetwork Layer

    ProtocolsProtocols

  • 8/3/2019 CORBA & RMI (IIOP)

    8/40

  • 8/3/2019 CORBA & RMI (IIOP)

    9/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    CORBA Architecture :: Technical Concrete Logical Structure

    WEB SERVER

    ObjectAdapter

    ServerSkeletons

    Client Stubs

    CLIENT

    Interfaces using IDL

    ORB

    NETWORK (GIIOP/IIOP)

  • 8/3/2019 CORBA & RMI (IIOP)

    10/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    CORBA Architecture :: Technical Concept & Logical Application

    In CORBA, the ORB provides the mechanisms by whichIn CORBA, the ORB provides the mechanisms by which

    objects transparently make requests and receive responses, providingobjects transparently make requests and receive responses, providing

    interoperability between applications on different machines, ininteroperability between applications on different machines, in

    heterogeneous distributed environments.heterogeneous distributed environments.

    For embedded applications, Apache HTTP CORBA is too largeFor embedded applications, Apache HTTP CORBA is too large

    to meet size and performance requirements. Such scenarios require ato meet size and performance requirements. Such scenarios require a

    cut-down version of unpopular CORBA web server.cut-down version of unpopular CORBA web server.

  • 8/3/2019 CORBA & RMI (IIOP)

    11/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    Application Server :: Technical Terminology

    EJB SESSION ::EJB SESSION :: Which are components implementing with Business logic, businessWhich are components implementing with Business logic, businessrules and workflow.rules and workflow.

    EJB ENTITY BEANS ::EJB ENTITY BEANS :: Which are components encapsulating some dataWhich are components encapsulating some data

    contained by the enterprise.contained by the enterprise.

    ---------------------- BEAN-MANGED PERSISTENCE (BMP) Entity BEAN ::BEAN-MANGED PERSISTENCE (BMP) Entity BEAN :: WhichWhich

    require the component developer to write the necessary code to make the beanrequire the component developer to write the necessary code to make the bean

    persist, using the API.persist, using the API.

    ---------------------- CONTAINER-MANGED PERSISTENCE (CMP) Entity BEAN ::CONTAINER-MANGED PERSISTENCE (CMP) Entity BEAN ::Which persistence is provided automatically by the container.Which persistence is provided automatically by the container.

  • 8/3/2019 CORBA & RMI (IIOP)

    12/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    CORBA :: Technical Terminology

    !! NOTE !!!! NOTE !!

    Using CORBA implementation allows objects of both cross-platform & cross-languageUsing CORBA implementation allows objects of both cross-platform & cross-language

    can invoke directly within our servlet by a remote client. Thus normally would start workcan invoke directly within our servlet by a remote client. Thus normally would start work

    from the same IDL description of the server object as of the CORBA server implement &from the same IDL description of the server object as of the CORBA server implement &

    generate client stub classes.generate client stub classes.

    Features:Features:

    o Looking up and instantiating objects on remoteLooking up and instantiating objects on remote..

    o Marshalling parameters from one programming language (such as Java) to another (suchMarshalling parameters from one programming language (such as Java) to another (such

    as C++) & vise-cersa.as C++) & vise-cersa.o Invoking methods on a remote objects, using the static method invocation described by aInvoking methods on a remote objects, using the static method invocation described by a

    downloaded stub.downloaded stub.

    o invoking methods on remote objects, using dynamic method invocation.invoking methods on remote objects, using dynamic method invocation.

    o Automatically starting objects that are not currently running.Automatically starting objects that are not currently running.

  • 8/3/2019 CORBA & RMI (IIOP)

    13/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    CORBA :: Technical Terminology

    !! NOTE !!!! NOTE !! If you intend software and not hardware, application server contain businessIf you intend software and not hardware, application server contain business

    logic code, while web server don't contain logic but only html pages to return tologic code, while web server don't contain logic but only html pages to return to

    the browser with a little interaction. .the browser with a little interaction. .

    Application Servers can also be termed as advanced versions of theApplication Servers can also be termed as advanced versions of theWeb servers that offers more functionality and tools to support the followingWeb servers that offers more functionality and tools to support the following

    features, however few of these features can also be handled using web servers.features, however few of these features can also be handled using web servers.(They are marked with *)(They are marked with *)

    1. Scalability *1. Scalability *

    2. Performance *2. Performance *

    3. Messaging3. Messaging

    4. Resource Pooling4. Resource Pooling5. JNDI5. JNDI

    6. Transaction services6. Transaction services

    7. In-Built Security7. In-Built Security

    8. App Diagnostics & Monitoring8. App Diagnostics & Monitoring

    9. In-Built IDEs eg: workshop for weblogic, WSAD for WebSphere9. In-Built IDEs eg: workshop for weblogic, WSAD for WebSphere

  • 8/3/2019 CORBA & RMI (IIOP)

    14/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    Choosing THE Web Server

    1. APACHE Http 2.0 Web Server

    2. CAUDIUM Web Server

    3. CORE Java Web server 2.0

  • 8/3/2019 CORBA & RMI (IIOP)

    15/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    I. APACHE Http 2.0 Web Server

  • 8/3/2019 CORBA & RMI (IIOP)

    16/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    I. APACHE Http 2.0 Web Server

    Apache 2.0 Web Server

    COREMod_cgi

    Mod_perl

    Mod_PHP

    Mod_fastCGI

    Mod_SSL

    Mod_CORBA

    CGI-Based application

    Fast CGI-Based application

    Module-based application

    Security Module

    Wireless invocation

    Module-based application

  • 8/3/2019 CORBA & RMI (IIOP)

    17/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    I. APACHE Http 2.0 Web Server

    NOTE:NOTE:

    As given data-flow beingAs given data-flow being

    displayed in the previous page,displayed in the previous page,

    it also illustrated the systemit also illustrated the system

    given in figure 3.3given in figure 3.3

    Figure 3.3Figure 3.3

  • 8/3/2019 CORBA & RMI (IIOP)

    18/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    I. APACHE Http 2.0 Web Server

    An interesting characteristic of the Apache serverAn interesting characteristic of the Apache server

    whereas the concept ofwhereas the concept of resource poolresource pool. All resources. All resources

    related to a request (memory, file handlers) arerelated to a request (memory, file handlers) are

    allocated and handled through a dedicated resourceallocated and handled through a dedicated resource

    pool. Further more, modules can define their ownpool. Further more, modules can define their own

    sub-resource pools if they want to manage privatesub-resource pools if they want to manage private

    resources in a similar manner with generalresources in a similar manner with general

    resources.resources.

    There is, however, something that might beThere is, however, something that might be

    compared with announcing an event, namely is thecompared with announcing an event, namely is the

    issuing of a sub-request by a module in order toissuing of a sub-request by a module in order to

    "force" the core to perform some of the steps for a"force" the core to perform some of the steps for a

    request on the sub-request (i.e. calling sequentiallyrequest on the sub-request (i.e. calling sequentially

    handlers for each servicing phase). However this ishandlers for each servicing phase). However this is

    not (conceptually) a proper event, because thenot (conceptually) a proper event, because the

    issuing module does not announce something toissuing module does not announce something to

    other (unknown to it) modules. It just a mean ofother (unknown to it) modules. It just a mean offorcing" an implicit invocation.forcing" an implicit invocation.

    The table shows the result of benchmarking, with the in-dept clientThe table shows the result of benchmarking, with the in-dept client

    accessing. For the same purpose of delivering better service asaccessing. For the same purpose of delivering better service as

    shown with Sequoia.shown with Sequoia.

  • 8/3/2019 CORBA & RMI (IIOP)

    19/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    2. Caudium Web Server

  • 8/3/2019 CORBA & RMI (IIOP)

    20/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    2. Caudium Web Server

    Caudium Web Server Core Structure PROTOCOLMODULES MODULE _ LOGGER

    MODULE _AUTH

    MODULE _FIRST

    MODULE _URL

    MODULE _EXTENSION

    MODULE _LOCATION

    MODULE _FILE _EXTENSION MODULE _DIRECTORY

    MODULE _TYPES

    MODULE _LAST

    MODULE _FILTER

    ERRORMESSAGE

    REQUEST RESPONSE

  • 8/3/2019 CORBA & RMI (IIOP)

    21/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    2. Caudium Web Server

    Points to be considered before Migration orPoints to be considered before Migration orimplementing Caudium Web server!!implementing Caudium Web server!!

  • 8/3/2019 CORBA & RMI (IIOP)

    22/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    2. Caudium Web Server

    Apache Caudium

    Using SSI to displayUsing SSI to display tag. tag.

    Using JavaScript to display a dateUsing JavaScript to display a date The tag actually is parsed by the server whereas JavaScript is parsed byThe tag actually is parsed by the server whereas JavaScript is parsed by

    the client. Search Engines do not parse JavaScript, and therefore yourthe client. Search Engines do not parse JavaScript, and therefore your

    JavaScript Date would not be recognized by the Search Engine.JavaScript Date would not be recognized by the Search Engine.

    Using SSI to include files forUsing SSI to include files for

    templatingtemplatingCaudium has the and tags which can be much more powerful thanCaudium has the and tags which can be much more powerful than

    simply including a file through SSI. Caudium also caches the template files forsimply including a file through SSI. Caudium also caches the template files for

    faster execution and page serving.faster execution and page serving.

    SSI and exec cmdSSI and exec cmd Because of the way Caudium works, you may need to specify the full file path forBecause of the way Caudium works, you may need to specify the full file path for

    exec cmd SSI statements.exec cmd SSI statements.

    Using SSI for URL Based sessionUsing SSI for URL Based session

    trackingtrackingThe GSession and 123Sessions module both provide easy to use session trackingThe GSession and 123Sessions module both provide easy to use session tracking

    based on url or cookies. The result is a cleaner URL for hosts that acceptbased on url or cookies. The result is a cleaner URL for hosts that accept

    cookies. GSession was engineered to be much more search engine friendlycookies. GSession was engineered to be much more search engine friendly

    than 123Sessions, but maintains backwards compatibility and is an easy drop-than 123Sessions, but maintains backwards compatibility and is an easy drop-in replacement.in replacement.

    Using JavaScript for Client capabilitiesUsing JavaScript for Client capabilities

    detectiondetectionCaudium contains the supports database, which is passed through to CGI scriptsCaudium contains the supports database, which is passed through to CGI scripts

    and can be accessed within RXML quite easily to make decisions based onand can be accessed within RXML quite easily to make decisions based on

    Client capabilities.Client capabilities.

    SSI to include events based on timeSSI to include events based on time

    schedulesschedulesOne can write a module that includes content based on certain filters, or use theOne can write a module that includes content based on certain filters, or use the

    RXML statements to display content based on dates, times, variables,RXML statements to display content based on dates, times, variables,

    etc.etc.

  • 8/3/2019 CORBA & RMI (IIOP)

    23/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    2. Caudium Web Server

    HTACCESS DifferencesHTACCESS Differences :: Caudium supports the NCSA Standards for .htaccess file construction.:: Caudium supports the NCSA Standards for .htaccess file construction.

    As a result, any .htaccess that works in Apache, may not work in Caudium. Usually this involves addingAs a result, any .htaccess that works in Apache, may not work in Caudium. Usually this involves adding

    and around the require valid-user statement in the .htaccess. and around the require valid-user statement in the .htaccess.

    Along with that, Caudium has a few built in authentication methods so that the .htaccess file is not asAlong with that, Caudium has a few built in authentication methods so that the .htaccess file is not as

    necessary. Authentication from MySQL/PostgreSQL and a number of other supported databases can benecessary. Authentication from MySQL/PostgreSQL and a number of other supported databases can be

    done without needing .htaccess files.done without needing .htaccess files.

    Mod_rewrite functionalityMod_rewrite functionality :::: When moving from Apache, mod_rewrite is the proverbial swissWhen moving from Apache, mod_rewrite is the proverbial swissarmy knife for URL manipulation. While that is the case, 95% of the uses for mod_rewrite have beenarmy knife for URL manipulation. While that is the case, 95% of the uses for mod_rewrite have been

    handled with two modules that are included within the base distribution of Caudium.handled with two modules that are included within the base distribution of Caudium.

    The first module is the ReferrerDeny module. This module blocks access to images based on theThe first module is the ReferrerDeny module. This module blocks access to images based on the

    referrer sent by the remote client. Typically this is called 'hotlink' protection.referrer sent by the remote client. Typically this is called 'hotlink' protection.

    The second module is the BrowserDeny module. This module blocks access to files based on theThe second module is the BrowserDeny module. This module blocks access to files based on the

    UserAgent of the remote client. It is common to block automated site suckers, email address surfingUserAgent of the remote client. It is common to block automated site suckers, email address surfing

    software, etc.software, etc.

    If you need more complex rewriting of URLs, Caudium has the Rewrite module. This module doesn'tIf you need more complex rewriting of URLs, Caudium has the Rewrite module. This module doesn't

    have support for multi-line rules like mod_rewrite, but does contain a number of advanced featureshave support for multi-line rules like mod_rewrite, but does contain a number of advanced features

    that sometimes surpass mod_rewrite's capabilities.that sometimes surpass mod_rewrite's capabilities.

    If the above solutions don't work, you can always write a custom module to handle your specificIf the above solutions don't work, you can always write a custom module to handle your specific

    requirements, but in general, the first two modules will probably address 95% of the issues you mightrequirements, but in general, the first two modules will probably address 95% of the issues you might

    run into while converting your site.run into while converting your site.

  • 8/3/2019 CORBA & RMI (IIOP)

    24/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    2. Caudium Web Server

    PHP SupportPHP Support:: While there is PHP support in Caudium, you may find that RXML can do many of the:: While there is PHP support in Caudium, you may find that RXML can do many of the

    things that you would use PHP for, and in many cases can provide an easier interface for certainthings that you would use PHP for, and in many cases can provide an easier interface for certain

    functions. Creating tables from SQL output in Caudium is much easier than using PHP. However, forfunctions. Creating tables from SQL output in Caudium is much easier than using PHP. However, for

    applications that need to be moved over, Caudium does support PHP.applications that need to be moved over, Caudium does support PHP.

    CGI Support/PathInfoCGI Support/PathInfo:: Caudium provides full support for CGI scripts, and passes the supports:: Caudium provides full support for CGI scripts, and passes the supports

    database information to the script as well. So your scripts can take advantage of the supportsdatabase information to the script as well. So your scripts can take advantage of the supports

    functionality which will allow you to add extra capabilities to your scripts.functionality which will allow you to add extra capabilities to your scripts.

    It is also very easy to write MODULE_LOCATIONs that are similar to .cgi scripts, but are resident andIt is also very easy to write MODULE_LOCATIONs that are similar to .cgi scripts, but are resident and

    become part of the Caudium Server.become part of the Caudium Server.

    Logging DifferencesLogging Differences:::: If you use a web log analyzer, the default format in Caudium may not beIf you use a web log analyzer, the default format in Caudium may not be

    what you are looking for. Rotation of logs is a bit different too as you can specify the filename to log towhat you are looking for. Rotation of logs is a bit different too as you can specify the filename to log to

    with certain macros. If you want to change the log format, within the Configuration Interface for yourwith certain macros. If you want to change the log format, within the Configuration Interface for your

    server, click on, Configuration Interface, Server Variables, Logging, Format.server, click on, Configuration Interface, Server Variables, Logging, Format.

    You may want to use the following format string which replicates the combined logging format fromYou may want to use the following format string which replicates the combined logging format from

    apache.apache.

    *: $host - $user [$cern_date] "$method $resource $protocol" $response $length "$referer"*: $host - $user [$cern_date] "$method $resource $protocol" $response $length "$referer"

    "$agent_unquoted""$agent_unquoted"

    Log file names can also be specified in the configuration interface. To maintain similar log file rotationLog file names can also be specified in the configuration interface. To maintain similar log file rotation

    as apache, you don't need to change the name. If you want to use a separate log file for each day, youas apache, you don't need to change the name. If you want to use a separate log file for each day, you

    can specify the log file name with an extension of .%y%m%d and it will create a new log file each daycan specify the log file name with an extension of .%y%m%d and it will create a new log file each daywith a yyyymmdd extension.with a yyyymmdd extension.

  • 8/3/2019 CORBA & RMI (IIOP)

    25/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    3. Core Java Web Server

  • 8/3/2019 CORBA & RMI (IIOP)

    26/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    3. Core Java Web Server

    ITEM Web Services CORBA

    Protocol SOAP, HTTP, XML Schema IIOP, GIIOP

    Location Identifiers URLs IOR, URL

    Interface Specifications WSDL IDL

    Naming Directory UDDI Naming Services, Interface Repository,Trader Service

  • 8/3/2019 CORBA & RMI (IIOP)

    27/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    3. Core Java Web Server

    There is no portable, standard API for SOAP, so the developer is left in the dark about howThere is no portable, standard API for SOAP, so the developer is left in the dark about how

    to map SOAP data to implementation data and vice versa. If you use a web services product for, say,to map SOAP data to implementation data and vice versa. If you use a web services product for, say,

    Java from one vendor and then want to switch to a web service product for Java from another vendor,Java from one vendor and then want to switch to a web service product for Java from another vendor,

    you get to rewrite all your code, because the new vendors toolkit and API are different.you get to rewrite all your code, because the new vendors toolkit and API are different.

    There isThere is no single wayno single way to map your programs objects and data model to SOAP and vice-to map your programs objects and data model to SOAP and vice-versa. There is no such thing as a language and platform independent interface and object modelversa. There is no such thing as a language and platform independent interface and object model

    specification language as CORBAs IDL (Interface Definition Language) together with the standardizedspecification language as CORBAs IDL (Interface Definition Language) together with the standardized

    programming language mappings.programming language mappings.

    Consider the following counter argument to the statement from the paragraph title:Consider the following counter argument to the statement from the paragraph title:

    Widespread support for the WSDL standard means you won't have to, just feed the WSDL to the newWidespread support for the WSDL standard means you won't have to, just feed the WSDL to the new

    vendor's system.vendor's system. This is not true:This is not true: WSDL doesn't describeWSDL doesn't describe implementationimplementation, does it? So, even with a, does it? So, even with a

    WSDL compiler, the best I could hope for is standardized APIs for interacting with a particular webWSDL compiler, the best I could hope for is standardized APIs for interacting with a particular web

    service. But I still won't get standardized APIs for interacting with other parts of the run time, do I?service. But I still won't get standardized APIs for interacting with other parts of the run time, do I?There is more to a language mapping than just translating interface definitions!There is more to a language mapping than just translating interface definitions!

    Furthermore, CORBA has had the fully portable POA (Portable Object Adapter) specificationFurthermore, CORBA has had the fully portable POA (Portable Object Adapter) specification

    for years. Not only the client code you write, but also thefor years. Not only the client code you write, but also the serverservercode (where you implement and servecode (where you implement and serve

    the distributed objects) is portable across ORBthe distributed objects) is portable across ORB

  • 8/3/2019 CORBA & RMI (IIOP)

    28/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    3. Core Java Web Server

    CLIENT

    JAVAOBJECTS

    JAVA

    RuntimeORB

    Proxy

    SERVER

    ORB

    Object

    Java object invoking through a remote Method.Java object invoking through a remote Method.

    IIOP

  • 8/3/2019 CORBA & RMI (IIOP)

    29/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    3. Core Java Web Server

    CLIENT

    LOCAL / Remote

    HOME Interface

    LOCAL / Remote

    HOME Interface

    EJB Home /

    EJB LocalHOME

    EJB Object /

    EJB LocalObject

    Bean

    Instance

    Use JNDI lookup toget a reference to theEJB Home/ EJB LocalObject

    Use the HomeInterface to create anew instance of the

    bean.

    Invoke business methodsdefined in the remote /local Interface.

    The container contains anew EJB Object/ EJB localObject that has beaninstance associated withit.

  • 8/3/2019 CORBA & RMI (IIOP)

    30/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

  • 8/3/2019 CORBA & RMI (IIOP)

    31/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    APACHE Http 2.0 Web Server

    Benchmark Results

  • 8/3/2019 CORBA & RMI (IIOP)

    32/40

    APACHE Http 2.0 Web Server

    Benchmark Results

    5

    5.2

    5.45.6

    5.8

    6

    6.2

    6.4

    6.6

    5 10 50 100 200 400

    Filesize: 100

    Filesize: 1024

    Filesize: 1900

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    Concurrency :: Time taken / sec

    1400

    1450

    1500

    1550

    16001650

    1700

    1750

    1800

    1850

    5 10 50 100 200 400

    Filesize: 100

    Filesize: 1024

    Filesize: 1900

    Concurrency :: Request / sec

  • 8/3/2019 CORBA & RMI (IIOP)

    33/40

  • 8/3/2019 CORBA & RMI (IIOP)

    34/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    Caudium Web Server

    Benchmark Results

  • 8/3/2019 CORBA & RMI (IIOP)

    35/40

    Caudium Web Server

    Benchmark Results

    0

    1

    2

    3

    4

    5

    6

    5 10 50 100 200 400

    Filesize: 100

    Filesize: 1024

    Filesize: 1900

    Concurrency :: Time taken /sec

    0

    500

    1000

    1500

    2000

    2500

    5 10 50 100 200 400

    Filesize: 100

    Filesize: 1024

    Filesize:1900

    Concurrency :: Request/sec

    CORBA :: Java Message ServiceCORBA :: Java Message Service

  • 8/3/2019 CORBA & RMI (IIOP)

    36/40

    Caudium Web Server

    Benchmark Results

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    0

    1000

    2000

    3000

    4000

    5000

    5 10 50 100 200 400

    Filesize: 100

    Filesize: 1024

    Filesize: 1900

    Concurrency :: Transfer rate (kb/s received)

  • 8/3/2019 CORBA & RMI (IIOP)

    37/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    CORE Java Web Server (JWS)

    Benchmark Results

    CGI / Sevlet Benchmark Raw DataCGI / Sevlet Benchmark Raw Data

    No. of ThreadsNo. of Threads CGICGI ServletServlet

    11 731731 390390

    55 2,1512,151 259259

    1010 9,3529,352 778778

    2020 8,0008,000 3,2843,284

    3030 28,37928,379 12,85212,852

    4040 45,37745,377 17,01717,017

    5050 86,88586,885 44,34944,349

    0

    1 0 0 0 0

    2 0 0 0 0

    3 0 0 0 0

    4 0 0 0 0

    5 0 0 0 0

    6 0 0 0 07 0 0 0 0

    8 0 0 0 0

    9 0 0 0 0

    1 0 0 0 0 0

    1Th

    read

    5Thre

    ads

    10Thre

    ads

    20Thre

    ads

    30Thre

    ads

    40Thre

    ads

    50Thre

    ads

    C G IG B

    S lo w G

    F a s tG

  • 8/3/2019 CORBA & RMI (IIOP)

    38/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    Benchmark Result :: Apache vs Caudium

    Concurrency :: Request / sec

    0

    500

    1000

    1500

    2000

    2500

    5 10 50 100 200 400

    Filesize: 100 Apache Filesize: 1024 Apache Filesize: 1900 Apache

    Filesize: 100 Caudium Filesize: 1024 Caudium Filesize:1900 Caudium

  • 8/3/2019 CORBA & RMI (IIOP)

    39/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    Benchmark Result :: Apache vs Caudium

    Concurrency :: Transfer Rate (kb/s Received)

    0

    1000

    2000

    3000

    4000

    5000

    5 10 50 100 200 400

    Filesize: 100 Apache Filesize: 1024 Apache Filesize: 1900 Apache

    Filesize: 100 Caudium Filesize: 1024 Caudium Filesize:1900 Caudium

  • 8/3/2019 CORBA & RMI (IIOP)

    40/40

    CORBA :: Java Message ServiceCORBA :: Java Message Service

    Benchmark Result :: Apache vs Caudium

    Concurrency :: Time Taken (Seconds)

    0

    1

    2

    3

    45

    6

    7

    5 10 50 100 200 400

    Filesize: 100 Apache Filesize: 1024 Apache Filesize: 1900 Apache

    Filesize: 100 Caudium Filesize: 1024 Caudium Filesize:1900 Caudium