MOINC Server Software Architecture – G5 Server Hiranya Jayathilaka 050185M Aravinda Dassanyake 050071K Dinusha Boteju 050049C Eranda Angunawala 050018G Project Supervisors Mr. Shantha Fernando Mr. Indika Perera Project Mentor Dr. Sanjiva Weerawarana
MOINC Server
Software Architecture – G5
Server
Hiranya Jayathilaka 050185M
Aravinda Dassanyake 050071K
Dinusha Boteju 050049C
Eranda Angunawala 050018G
Project Supervisors Mr. Shantha Fernando
Mr. Indika Perera
Project Mentor Dr. Sanjiva Weerawarana
What is MOINC?
Mora Open Infrastructure for Network Computing
“It is a working prototype for an architecture
combining the paradigm of Web Services with
Grid Computing and Volunteer Computing”
“Hmm… Flashy name! So, what is MOINC?”
Web Services Today…
Poor scalability
Poor availability.
Degradation of performance
when subjected to heavy loads.
“The current Web Services
paradigm has a number of critical
limitations”
Clustering
Current Trends…(cont)
“The traditional
way of providing high
availability and
performance”
Current Trends…(cont)
Grid Computing
• Coordinates resources
that are not subject
to centralized control.
• Uses standard, open,
general-purpose protocols and
interfaces.
• Delivers non-trivial qualities of
service
“A special type of distributed
computing”
Current Trends…(cont)
Volunteer Computing
“Technically similar to
Grid Computing. But…”
• Can be implemented using
inexpensive commodity
hardware.
• Open to large communities.
• Users should trust
applications and vice versa.
How MOINC Fits In…
“MOINC is a fusion of the
best of Grid Computing and
Volunteer Computing with
Web Services”
“Sounds interesting…
Let’s hear more”
MOINC Quick Facts
“MOINC is a brainchild of Dr. Sanjiva Weerawarana”
Three primary components
MOINC Server
MOINC Server Manager
MOINC Client Agent
Components linked via the Thisara Communication Framework.
Research & development started in April 2008.
Aim – Improving the availability and scalability of Web Services through a
blend of Web Services and Grid/Volunteer Computing.
MOINC Server
The core component of the MOINC platform.
Manager and coordinator.
Grid membership manager.
Service and module management.
Configuration management.
Shared repository.
MOINC Server management console.
Default member.
Grid Membership Manager
Concept of Clustering Domains.
A clustering domain contains a set of services.
Each node is assigned to one or more domains.
When a node is assigned to a domain all the services in the
domain are deployed in the node.
Domain Manager
Low level membership management via Apache Tribes
Multicast based group communication framework.
High level membership management via Thisara
Grid Membership Manager
Idle Request Tracker (powered by Thisara)
MOINC Agent instances residing on remote machines notify the MOINC Server
when they are willing to join the grid by sending an Idle Request message.
Adding nodes dynamically to the grid
(powered by Apache Synapse)
Removing nodes dynamically from the grid (powered by Apache Synapse)
Node state maintenance
(powered by Apache Axis2 / Tribes)
Basic dynamic load balancer
Smart Load Balancer
Validation API and domain manager
Service & Module Management
Addition and removal of service artifacts.
Deploying and undeploying Axis2 modules.
Hot deployment.
Configuration Management
XML based global configuration model.
Easily extensible by defining custom properties and parameters.
Inspired by the Apache Axis2 configuration model.
Separate configuration for Management Console for loose coupling.
Server Management Console
JavascriptWeb
Services
W
S
F
XSLT
Web 2.0 like.
Inspired by the WSO2 WSAS UI framework.
Core functionalities implemented as Java Web Services.
Executes Web Services through WSO2 Web Services Framework
(WSF) for Javascript.
Displays grid status, service, module and
system information.
Default Member - WSAS
Registry
Axis2WSAS Axis2
Clustering Layer Clustering Layer Clustering Layer
Tribes Tribes TribesManagement
Console
Uses WSO2 WSAS (Web Services Application Server)
Runs in conjunction with the shared repository.
Acts as the container for the Server Management Module.
Becomes a default member for each clustering domain.
Thisara Communication Framework
Protocol Designed from the scratch.
Message format inspired by the Financial Information Exchange (FIX) Protocol.
Simple, light-weight, text-based.
TLS secured.
Implemented on Apache MINA (Multipurpose Infrastructure for Network Applications)
Simple Server-side and Client-side APIs.
Optional multithreading support.
Maven2 support.
API
Business Logic
Server Message Handler
TLS
MINA
API
Business Logic
Client Message Handler
TLS
MINA
ServerClient
TCP/IP
The End Result…
“We have a highly scalable and loosely coupled
architecture for deploying Web Services on grid
environments.”
“Reliability can be achieved through message cloning.”
“Better performance can be achieved through message
splitting and aggregation.”
What We Did…
“MOINC is not just a product. It’s much more than that…
It resembles the inception of a whole new architecture.
An architecture which allows Web Services deployments
to scale beyond limits unimaginable.”
Keep In Touch…
Official Website http://www.moinc.org
SVN http://svn.moinc.org/thisarahttp://svn.moinc.org/server
Mailing List http://groups.google.com/group/project_moinc
Third party Project Tracking http://www.ohloh.net/p/moinc
Developer Resources http://www.moinc.org/index.php?option=com_content&view=article&id=53&Itemid=65
Download http://www.moinc.org/index.php?option=com_content&view=article&id=57&Itemid=70