SlideShare a Scribd company logo
DYNAMIC SERVER
             REPLICATION
This project will be able to dynamically replicate a given server object when
needed, as many times as is required, as well as shut down replicas when they
are no longer required, without client applications needing to be aware of the
replication that will take place.
The project will be in the form of a framework which an existing server, with some
amount of modification, will be able to attach to and make use of. The framework
will then take care of the replication process and the management of all
replicated servers, while maintaining data consistency.
The project will involve designing, implementing and testing the proposed
system, and writing a report about the project. The product of this project will be
a set of middleware objects forming an API which existing servers can use to
allow themselves to be dynamically replicated.
Many servers today need to give a highly available service – that is, be able to
service large amounts of clients quickly. A common solution to this problem is to
make copies of the server software and its data.
The number of these replicated servers is generally fixed, unless administrators
create a new clone (which involves shutting the system down while it is
reconfigured).
This means that server availability is sometimes still not high enough, even using
some replicas, and sometimes too high, such that some replicas are barely used.
In this latter scenario, where replicas are underused, this still impacts system
performance because these servers are still required to communicate with other
servers in the group.
The system proposed in this report intends to solve this problem by allowing
servers to be dynamically replicated in a running system, on demand, and for
servers to be shut down when not required, according to the amount of clients
connected at a particular time, the server load that clients are creating, and any
other factors that the server application may wish to take into account.
This project aims to produce a framework of components, an API, which server
applications can use to allow themselves to be replicated. The framework will
allow servers to specify the availability and speed of service they wish to provide
against the fault tolerance (data consistency) that they require.
The middleware will take these requests into account and replicate the server
when necessary, using methods appropriate to meet the requirements set by the
server application in terms of speed and data consistency. The process of
replication should not be visible to the client, allowing existing clients to connect
to servers without modification.
Server application objects in this system will be replicated on the same physical
computer. If there is sufficient time, a further aim is to allow replication on
different physical machines. This system will be implemented and tested as part
of the proposed project.
Replication
Replication is a well studied area of computing, with several established
architectures to solve the problem. These include gossip, Bayou, and the concepts
of read one/write all and passive and active replication.
Generally, the more highly available a replication model is, or the faster it needs to
process client transactions, the less fault tolerant it will become, where absolute
data consistency may be lost.
A general model of replication is shown in figure 1, and contains a client, front end
(FE), and three replica managers (RM). The client communicates only with the
front end, providing replication transparency. Each client has its own front end.
The replication technique then depends on how the replica managers are used,
and the communication semantics between the front end and the replica group



                                      RM

         Client    FE
                                 RM        RM


Replication


The Proposed Project
The project aims to create a framework capable of dynamically replicating a given
server object. More detailed aims are given in the following subsection.

Core aims
•   To develop reusable middleware that can dynamically replicate a server
    application, provided that the server implements any necessary interfaces.
•   The server environment will be dynamically reconfigured through replication
    when needed. The deciding factors on when to create a replica of the server
    should be modifiable by the server application.
•   A server application using the framework should be able to set parameters for
    replication in regard to the desired level of consistency against the level of
    performance offered to clients.
•   Replication should be transparent to the client; existing clients should be able
    to be used with no modification. Their view will be of a single server object.

Desirable aims
•   Support physically distributed server replicas (on different computers).
•   Add    a    performance    evaluation   system,   to   report     on relative
    benefits/drawbacks of replication in fault tolerant and highly available
    configurations, based on throughput and response time to clients.
APPROACH
An incremental approach will be taken to design and implement the proposed
system. A gossip style of system will be developed that supports a fixed number
of replicas, implementing fault tolerance in a fixed scheme. The gossip
architecture is the most flexible of the established algorithms for replication. It
can effectively imitate many other replication models.
When this system is completed, dynamic replication support will be added to the
framework, and servers will be able to set parameters for levels of fault tolerance
and performance, as well as options defining when the framework should create a
new replica or remove an existing one.
At this point, allowing different replication architectures will need to be
considered; the system will be adapted so that a separate module governs the
replication model, allowing different models to be added and used as necessary.
This approach has been chosen so that the core elements of the proposed
project can be implemented first, allowing a working system to be created early in
the implementation process. Additional services and objects may be added once
the main components of the framework are in place.
The Java technology RMI (Remote Method Invocation) will be used to implement
the distributed system. RMI is a framework from JavaSoft which allows methods
in distributed objects to be called as if they were residing in local memory,
handling sockets and issues of serialization of objects and other communication
tasks automatically


                           SYSTEM CONFIGURATION
HARDWARE CONFIGURATION
Processor      -   Pentium – IV
Speed          -   2.4 Ghz
RAM            -   256 MB
Hard Disk      -   20 GB
Key Board      -   Standard Windows Keyboard
Mouse          -   Two or Three Button Mouse
Monitor            -       Color Monitor


SOFTWARE CONFIGURATION
Operating System -         Windows 2000/XP
Front End          -       JAVA, JAVA RMI
Back End           -       MS-SQL Server
Connectivity       -       JDBC Connectivity
Web Design         -       HTML, JSP

More Related Content

What's hot

Command Pattern Geoff Burns 2006 Nov
Command Pattern Geoff Burns 2006 NovCommand Pattern Geoff Burns 2006 Nov
Command Pattern Geoff Burns 2006 Nov
melbournepatterns
 
IBM Managing Workload Scalability with MQ Clusters
IBM Managing Workload Scalability with MQ ClustersIBM Managing Workload Scalability with MQ Clusters
IBM Managing Workload Scalability with MQ Clusters
IBM Systems UKI
 

What's hot (20)

MMC
MMCMMC
MMC
 
JMX Tutorial
JMX TutorialJMX Tutorial
JMX Tutorial
 
Mule anypoint exchange
Mule  anypoint exchangeMule  anypoint exchange
Mule anypoint exchange
 
Mule message structure
Mule message structureMule message structure
Mule message structure
 
Mule rabbit mq
Mule rabbit mqMule rabbit mq
Mule rabbit mq
 
Mule management console
Mule management consoleMule management console
Mule management console
 
Mule esb-connectors
Mule esb-connectorsMule esb-connectors
Mule esb-connectors
 
Pathway to Hansen - Integration - The Data Publisher
Pathway to Hansen - Integration - The Data PublisherPathway to Hansen - Integration - The Data Publisher
Pathway to Hansen - Integration - The Data Publisher
 
Mule ESB Components
Mule ESB Components Mule ESB Components
Mule ESB Components
 
Mule esb basic introduction
Mule esb basic introductionMule esb basic introduction
Mule esb basic introduction
 
Arch andmodulesmule
Arch andmodulesmuleArch andmodulesmule
Arch andmodulesmule
 
Overview of Mule
Overview of MuleOverview of Mule
Overview of Mule
 
Best Practices for Managing and Monitoring WebSphere Message Broker
Best Practices for Managing and Monitoring WebSphere Message BrokerBest Practices for Managing and Monitoring WebSphere Message Broker
Best Practices for Managing and Monitoring WebSphere Message Broker
 
Command Pattern Geoff Burns 2006 Nov
Command Pattern Geoff Burns 2006 NovCommand Pattern Geoff Burns 2006 Nov
Command Pattern Geoff Burns 2006 Nov
 
IBM MQ v8 and JMS 2.0
IBM MQ v8 and JMS 2.0IBM MQ v8 and JMS 2.0
IBM MQ v8 and JMS 2.0
 
Building a Highly available messaging hub using the IBM MQ Appliance
Building a Highly available messaging hub using the IBM MQ ApplianceBuilding a Highly available messaging hub using the IBM MQ Appliance
Building a Highly available messaging hub using the IBM MQ Appliance
 
Mule
MuleMule
Mule
 
IBM MQ - High Availability and Disaster Recovery
IBM MQ - High Availability and Disaster RecoveryIBM MQ - High Availability and Disaster Recovery
IBM MQ - High Availability and Disaster Recovery
 
Building highly available architectures with WAS and MQ
Building highly available architectures with WAS and MQBuilding highly available architectures with WAS and MQ
Building highly available architectures with WAS and MQ
 
IBM Managing Workload Scalability with MQ Clusters
IBM Managing Workload Scalability with MQ ClustersIBM Managing Workload Scalability with MQ Clusters
IBM Managing Workload Scalability with MQ Clusters
 

Similar to Java Abs Dynamic Server Replication

Client server computing
Client server computingClient server computing
Client server computing
jorge cabiao
 
Peoplesoft PIA architecture
Peoplesoft PIA architecturePeoplesoft PIA architecture
Peoplesoft PIA architecture
Amit rai Raaz
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
Majong DevJfu
 
Web Application Development using PHP and MySQL
Web Application Development using PHP and MySQLWeb Application Development using PHP and MySQL
Web Application Development using PHP and MySQL
Ganesh Kamath
 
A Distributed Control Law for Load Balancing in Content Delivery Networks
A Distributed Control Law for Load Balancing in Content Delivery NetworksA Distributed Control Law for Load Balancing in Content Delivery Networks
A Distributed Control Law for Load Balancing in Content Delivery Networks
Sruthi Kamal
 
Cloud architecture
Cloud architectureCloud architecture
Cloud architecture
Adeel Javaid
 

Similar to Java Abs Dynamic Server Replication (20)

Distributed Operating System
Distributed Operating SystemDistributed Operating System
Distributed Operating System
 
Client server architecture
Client server architectureClient server architecture
Client server architecture
 
Client server computing
Client server computingClient server computing
Client server computing
 
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
 
Peoplesoft PIA architecture
Peoplesoft PIA architecturePeoplesoft PIA architecture
Peoplesoft PIA architecture
 
Could the “C” in HPC stand for Cloud?
Could the “C” in HPC stand for Cloud?Could the “C” in HPC stand for Cloud?
Could the “C” in HPC stand for Cloud?
 
Dynamic resource allocation using virtual machines for cloud computing enviro...
Dynamic resource allocation using virtual machines for cloud computing enviro...Dynamic resource allocation using virtual machines for cloud computing enviro...
Dynamic resource allocation using virtual machines for cloud computing enviro...
 
JAVA 2013 IEEE CLOUDCOMPUTING PROJECT Dynamic resource allocation using virtu...
JAVA 2013 IEEE CLOUDCOMPUTING PROJECT Dynamic resource allocation using virtu...JAVA 2013 IEEE CLOUDCOMPUTING PROJECT Dynamic resource allocation using virtu...
JAVA 2013 IEEE CLOUDCOMPUTING PROJECT Dynamic resource allocation using virtu...
 
Multi Tenancy In The Cloud
Multi Tenancy In The CloudMulti Tenancy In The Cloud
Multi Tenancy In The Cloud
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Web Application Development using PHP and MySQL
Web Application Development using PHP and MySQLWeb Application Development using PHP and MySQL
Web Application Development using PHP and MySQL
 
slides (PPT)
slides (PPT)slides (PPT)
slides (PPT)
 
Software architectural patterns - A Quick Understanding Guide
Software architectural patterns - A Quick Understanding GuideSoftware architectural patterns - A Quick Understanding Guide
Software architectural patterns - A Quick Understanding Guide
 
Client Server Model and Distributed Computing
Client Server Model and Distributed ComputingClient Server Model and Distributed Computing
Client Server Model and Distributed Computing
 
Server Farms and XML Web Services
Server Farms and XML Web ServicesServer Farms and XML Web Services
Server Farms and XML Web Services
 
Client server
Client serverClient server
Client server
 
A Distributed Control Law for Load Balancing in Content Delivery Networks
A Distributed Control Law for Load Balancing in Content Delivery NetworksA Distributed Control Law for Load Balancing in Content Delivery Networks
A Distributed Control Law for Load Balancing in Content Delivery Networks
 
Cloud architecture
Cloud architectureCloud architecture
Cloud architecture
 
Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...
Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...
Pure Systems Patterns of Expertise - John Kaemmerer and Gerry Kovan, 11th Sep...
 
Enterprise Application Guidelines
Enterprise Application GuidelinesEnterprise Application Guidelines
Enterprise Application Guidelines
 

More from ncct

Biomedical Wearable Device For Remote Monitoring Ofphysiological Signals
Biomedical Wearable Device For Remote Monitoring Ofphysiological SignalsBiomedical Wearable Device For Remote Monitoring Ofphysiological Signals
Biomedical Wearable Device For Remote Monitoring Ofphysiological Signals
ncct
 
Digital Water Marking For Video Piracy Detection
Digital Water Marking For Video Piracy DetectionDigital Water Marking For Video Piracy Detection
Digital Water Marking For Video Piracy Detection
ncct
 
Self Repairing Tree Topology Enabling Content Based Routing In Local Area Ne...
Self Repairing Tree Topology Enabling  Content Based Routing In Local Area Ne...Self Repairing Tree Topology Enabling  Content Based Routing In Local Area Ne...
Self Repairing Tree Topology Enabling Content Based Routing In Local Area Ne...
ncct
 
Cockpit White Box
Cockpit White BoxCockpit White Box
Cockpit White Box
ncct
 
Rail Track Inspector
Rail Track InspectorRail Track Inspector
Rail Track Inspector
ncct
 
Botminer Clustering Analysis Of Network Traffic For Protocol And Structure...
Botminer   Clustering Analysis Of Network Traffic For Protocol  And Structure...Botminer   Clustering Analysis Of Network Traffic For Protocol  And Structure...
Botminer Clustering Analysis Of Network Traffic For Protocol And Structure...
ncct
 
Bot Robo Tanker Sound Detector
Bot Robo  Tanker  Sound DetectorBot Robo  Tanker  Sound Detector
Bot Robo Tanker Sound Detector
ncct
 
Distance Protection
Distance ProtectionDistance Protection
Distance Protection
ncct
 
Bluetooth Jammer
Bluetooth  JammerBluetooth  Jammer
Bluetooth Jammer
ncct
 
Crypkit 1
Crypkit 1Crypkit 1
Crypkit 1
ncct
 
I E E E 2009 Java Projects
I E E E 2009  Java  ProjectsI E E E 2009  Java  Projects
I E E E 2009 Java Projects
ncct
 
B E Projects M C A Projects B
B E  Projects  M C A  Projects  BB E  Projects  M C A  Projects  B
B E Projects M C A Projects B
ncct
 
J2 E E Projects, I E E E Projects 2009
J2 E E  Projects,  I E E E  Projects 2009J2 E E  Projects,  I E E E  Projects 2009
J2 E E Projects, I E E E Projects 2009
ncct
 
J2 M E Projects, I E E E Projects 2009
J2 M E  Projects,  I E E E  Projects 2009J2 M E  Projects,  I E E E  Projects 2009
J2 M E Projects, I E E E Projects 2009
ncct
 
Engineering College Projects, M C A Projects, B E Projects, B Tech Pr...
Engineering  College  Projects,  M C A  Projects,  B E  Projects,  B Tech  Pr...Engineering  College  Projects,  M C A  Projects,  B E  Projects,  B Tech  Pr...
Engineering College Projects, M C A Projects, B E Projects, B Tech Pr...
ncct
 
B E M E Projects M C A Projects B
B E  M E  Projects  M C A  Projects  BB E  M E  Projects  M C A  Projects  B
B E M E Projects M C A Projects B
ncct
 
I E E E 2009 Java Projects, I E E E 2009 A S P
I E E E 2009  Java  Projects,  I E E E 2009  A S PI E E E 2009  Java  Projects,  I E E E 2009  A S P
I E E E 2009 Java Projects, I E E E 2009 A S P
ncct
 
Advantages Of Software Projects N C C T
Advantages Of  Software  Projects  N C C TAdvantages Of  Software  Projects  N C C T
Advantages Of Software Projects N C C T
ncct
 
Engineering Projects
Engineering  ProjectsEngineering  Projects
Engineering Projects
ncct
 
Software Projects Java Projects Mobile Computing
Software  Projects  Java  Projects  Mobile  ComputingSoftware  Projects  Java  Projects  Mobile  Computing
Software Projects Java Projects Mobile Computing
ncct
 

More from ncct (20)

Biomedical Wearable Device For Remote Monitoring Ofphysiological Signals
Biomedical Wearable Device For Remote Monitoring Ofphysiological SignalsBiomedical Wearable Device For Remote Monitoring Ofphysiological Signals
Biomedical Wearable Device For Remote Monitoring Ofphysiological Signals
 
Digital Water Marking For Video Piracy Detection
Digital Water Marking For Video Piracy DetectionDigital Water Marking For Video Piracy Detection
Digital Water Marking For Video Piracy Detection
 
Self Repairing Tree Topology Enabling Content Based Routing In Local Area Ne...
Self Repairing Tree Topology Enabling  Content Based Routing In Local Area Ne...Self Repairing Tree Topology Enabling  Content Based Routing In Local Area Ne...
Self Repairing Tree Topology Enabling Content Based Routing In Local Area Ne...
 
Cockpit White Box
Cockpit White BoxCockpit White Box
Cockpit White Box
 
Rail Track Inspector
Rail Track InspectorRail Track Inspector
Rail Track Inspector
 
Botminer Clustering Analysis Of Network Traffic For Protocol And Structure...
Botminer   Clustering Analysis Of Network Traffic For Protocol  And Structure...Botminer   Clustering Analysis Of Network Traffic For Protocol  And Structure...
Botminer Clustering Analysis Of Network Traffic For Protocol And Structure...
 
Bot Robo Tanker Sound Detector
Bot Robo  Tanker  Sound DetectorBot Robo  Tanker  Sound Detector
Bot Robo Tanker Sound Detector
 
Distance Protection
Distance ProtectionDistance Protection
Distance Protection
 
Bluetooth Jammer
Bluetooth  JammerBluetooth  Jammer
Bluetooth Jammer
 
Crypkit 1
Crypkit 1Crypkit 1
Crypkit 1
 
I E E E 2009 Java Projects
I E E E 2009  Java  ProjectsI E E E 2009  Java  Projects
I E E E 2009 Java Projects
 
B E Projects M C A Projects B
B E  Projects  M C A  Projects  BB E  Projects  M C A  Projects  B
B E Projects M C A Projects B
 
J2 E E Projects, I E E E Projects 2009
J2 E E  Projects,  I E E E  Projects 2009J2 E E  Projects,  I E E E  Projects 2009
J2 E E Projects, I E E E Projects 2009
 
J2 M E Projects, I E E E Projects 2009
J2 M E  Projects,  I E E E  Projects 2009J2 M E  Projects,  I E E E  Projects 2009
J2 M E Projects, I E E E Projects 2009
 
Engineering College Projects, M C A Projects, B E Projects, B Tech Pr...
Engineering  College  Projects,  M C A  Projects,  B E  Projects,  B Tech  Pr...Engineering  College  Projects,  M C A  Projects,  B E  Projects,  B Tech  Pr...
Engineering College Projects, M C A Projects, B E Projects, B Tech Pr...
 
B E M E Projects M C A Projects B
B E  M E  Projects  M C A  Projects  BB E  M E  Projects  M C A  Projects  B
B E M E Projects M C A Projects B
 
I E E E 2009 Java Projects, I E E E 2009 A S P
I E E E 2009  Java  Projects,  I E E E 2009  A S PI E E E 2009  Java  Projects,  I E E E 2009  A S P
I E E E 2009 Java Projects, I E E E 2009 A S P
 
Advantages Of Software Projects N C C T
Advantages Of  Software  Projects  N C C TAdvantages Of  Software  Projects  N C C T
Advantages Of Software Projects N C C T
 
Engineering Projects
Engineering  ProjectsEngineering  Projects
Engineering Projects
 
Software Projects Java Projects Mobile Computing
Software  Projects  Java  Projects  Mobile  ComputingSoftware  Projects  Java  Projects  Mobile  Computing
Software Projects Java Projects Mobile Computing
 

Recently uploaded

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 

Recently uploaded (20)

Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Ransomware Mallox [EN].pdf
Ransomware         Mallox       [EN].pdfRansomware         Mallox       [EN].pdf
Ransomware Mallox [EN].pdf
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
НАДІЯ ФЕДЮШКО БАЦ «Професійне зростання QA спеціаліста»
НАДІЯ ФЕДЮШКО БАЦ  «Професійне зростання QA спеціаліста»НАДІЯ ФЕДЮШКО БАЦ  «Професійне зростання QA спеціаліста»
НАДІЯ ФЕДЮШКО БАЦ «Професійне зростання QA спеціаліста»
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 

Java Abs Dynamic Server Replication

  • 1. DYNAMIC SERVER REPLICATION This project will be able to dynamically replicate a given server object when needed, as many times as is required, as well as shut down replicas when they are no longer required, without client applications needing to be aware of the replication that will take place. The project will be in the form of a framework which an existing server, with some amount of modification, will be able to attach to and make use of. The framework will then take care of the replication process and the management of all replicated servers, while maintaining data consistency. The project will involve designing, implementing and testing the proposed system, and writing a report about the project. The product of this project will be a set of middleware objects forming an API which existing servers can use to allow themselves to be dynamically replicated. Many servers today need to give a highly available service – that is, be able to service large amounts of clients quickly. A common solution to this problem is to make copies of the server software and its data. The number of these replicated servers is generally fixed, unless administrators create a new clone (which involves shutting the system down while it is reconfigured). This means that server availability is sometimes still not high enough, even using some replicas, and sometimes too high, such that some replicas are barely used. In this latter scenario, where replicas are underused, this still impacts system performance because these servers are still required to communicate with other servers in the group. The system proposed in this report intends to solve this problem by allowing servers to be dynamically replicated in a running system, on demand, and for servers to be shut down when not required, according to the amount of clients connected at a particular time, the server load that clients are creating, and any other factors that the server application may wish to take into account. This project aims to produce a framework of components, an API, which server applications can use to allow themselves to be replicated. The framework will allow servers to specify the availability and speed of service they wish to provide against the fault tolerance (data consistency) that they require. The middleware will take these requests into account and replicate the server when necessary, using methods appropriate to meet the requirements set by the server application in terms of speed and data consistency. The process of replication should not be visible to the client, allowing existing clients to connect to servers without modification. Server application objects in this system will be replicated on the same physical computer. If there is sufficient time, a further aim is to allow replication on different physical machines. This system will be implemented and tested as part of the proposed project.
  • 2. Replication Replication is a well studied area of computing, with several established architectures to solve the problem. These include gossip, Bayou, and the concepts of read one/write all and passive and active replication. Generally, the more highly available a replication model is, or the faster it needs to process client transactions, the less fault tolerant it will become, where absolute data consistency may be lost. A general model of replication is shown in figure 1, and contains a client, front end (FE), and three replica managers (RM). The client communicates only with the front end, providing replication transparency. Each client has its own front end. The replication technique then depends on how the replica managers are used, and the communication semantics between the front end and the replica group RM Client FE RM RM Replication The Proposed Project The project aims to create a framework capable of dynamically replicating a given server object. More detailed aims are given in the following subsection. Core aims • To develop reusable middleware that can dynamically replicate a server application, provided that the server implements any necessary interfaces. • The server environment will be dynamically reconfigured through replication when needed. The deciding factors on when to create a replica of the server should be modifiable by the server application. • A server application using the framework should be able to set parameters for replication in regard to the desired level of consistency against the level of performance offered to clients. • Replication should be transparent to the client; existing clients should be able to be used with no modification. Their view will be of a single server object. Desirable aims • Support physically distributed server replicas (on different computers). • Add a performance evaluation system, to report on relative benefits/drawbacks of replication in fault tolerant and highly available configurations, based on throughput and response time to clients.
  • 3. APPROACH An incremental approach will be taken to design and implement the proposed system. A gossip style of system will be developed that supports a fixed number of replicas, implementing fault tolerance in a fixed scheme. The gossip architecture is the most flexible of the established algorithms for replication. It can effectively imitate many other replication models. When this system is completed, dynamic replication support will be added to the framework, and servers will be able to set parameters for levels of fault tolerance and performance, as well as options defining when the framework should create a new replica or remove an existing one. At this point, allowing different replication architectures will need to be considered; the system will be adapted so that a separate module governs the replication model, allowing different models to be added and used as necessary. This approach has been chosen so that the core elements of the proposed project can be implemented first, allowing a working system to be created early in the implementation process. Additional services and objects may be added once the main components of the framework are in place. The Java technology RMI (Remote Method Invocation) will be used to implement the distributed system. RMI is a framework from JavaSoft which allows methods in distributed objects to be called as if they were residing in local memory, handling sockets and issues of serialization of objects and other communication tasks automatically SYSTEM CONFIGURATION HARDWARE CONFIGURATION Processor - Pentium – IV Speed - 2.4 Ghz RAM - 256 MB Hard Disk - 20 GB Key Board - Standard Windows Keyboard Mouse - Two or Three Button Mouse Monitor - Color Monitor SOFTWARE CONFIGURATION Operating System - Windows 2000/XP Front End - JAVA, JAVA RMI Back End - MS-SQL Server Connectivity - JDBC Connectivity Web Design - HTML, JSP