An Experience Report with Free Libraries and Tools
Download
Report
Transcript An Experience Report with Free Libraries and Tools
Developing a
Distributed eMonitoring System
for Enterprise
Website and Web
Services:
An Experience Report with Free Libraries and
Tools
By: Frank K.W. Cheong, Dickson K.W. Chiu, S.C.
Cheung, and Patrick C. K. Hung
Company
LOGO
Abstract
Introduction
Current Technological Problems
Understanding the Dilemma
Conceptual Modeling
System Design and Implementation
Front and Back End Monitoring
Communication
Questions and Answers (Q&A)
Introduction
This paper focuses on:
- Health on Websites/Web services
- Providing protection from harmful attacks
- Using experience based Pragmatic
Programming
Current Technological Problems
PROBLEMS:
• Product Lifecycle
• Monetary Constraints
• Product Synchronization
Company
LOGO
The product lifecycle
CURRENT TRENDS
- Quick moving Technology
- Very short product live cycle
RESULTS IN
- Quicker development
- Lower testing levels before implementation
- Weaker testing phases
Monetary Barriers
There are many good products and
libraries available on the market for a fee
In order to provide a quality and
affordable system there needs to be a
reference source that meets the needs
while maintaining economic accessibility.
Understanding the Dilemma
Causes:
1. Simplified Network Model
2. Potential Causes of Problems
3. Methods of Reducing Cost
Company
4. Simulating the consumerLOGO
experience
Simplified network diagram
Overseas Upstream Provider Network
Link to Overseas
Network Exchange
Border
Firewall
Border
Firewall
Link to Overseas
Network Exchan
ge
Co-location Network
Switch
cal
Link to Lo ger
chan
Network Ex
Border
Router
Company Own Network
Border
Firewall
Reverse
Proxy
Network Switch
Border
Router
Border Router
Broadband
User
L
Netw ink to
o r k L o ca
l
Exc
han
g
e
Overseas ISP Network
Company
Firewall
Upstre
Provide am
r
Border
Firewall
Border
Firewall
Link to
ca l
to Lo
Link P
IS
Switch
verseas
Link to O ovider
Pr
Upstream
Border
Border Router
Firewall
Broadband User
Broadband
User
Switch
Border
Router
Reverse Proxy
Link
Netw to Ov
er
o rk
Exc seas
han
ge
Border
Firewall
PABX/Braodband
Trunking Concentrator
Web Server Web Server
Web Server
Border
Firewall
File Server Database Server
Simplified view
of Users and
target e-service
servers.
Gives greater
insight into the
functionality of
various
locations
Potential Causes of Problems
PROBLEMS CAUSES INCLUDE:
Networking with local exchanges
Networking with upstream providers
Networking with multi-location service
providers
Reverse proxy servers
Firewalls and network switches (ie.
Software conversion)
Simulating the Consumer
Experience
Simulated consumer experience includes:
Encountering purchase process
Going through product selection
Going through checkout
Completing transaction
Purpose:
Designed to recognize security breeches
improve consumer experience
Conceptual Modeling
Concepts:
1. Entity Sites and Steps
2. Remote Agent Monitoring
Company
3. The Use of IP Addresses
LOGO
4. E-Monitoring
Entity Sites and Steps
It is important to clearly identify and the steps
that are to be followed by the Entity site in
order for the tasks to be executed correctly.
This is also vital to ideal communication.
Remote Monitoring Agents
and IP addresses
How is performance calculated?
Round trip time, how long does it take the
message to transmit forwards and backwards
Checking for:
Reverse proxy between sites
Monitoring and eliminating third parties
Messages tracked through IP address tags
E-Monitoring
The E-Monitoring system is subject to three main
processes: monitoring, statistics updating, and
obtaining fresh site-list processes.
System Design and Implementation
Implementation:
1. Deployment Diagram
2. Front End Monitoring Agent
•
•
•
•
•
Language chosen
Multi-threaded design
HTTP Request layer
User interface (UI) layer
Checking the targets
•
Database Persistence Layer
Company
LOGO
Deployment Diagram
eMonitoring Node
.
.
.
HTTP/HTTPS Request/Response
Websites to be monitored
.
.
.
.
eMonitoring Node
.
.
.
eMonitoring Node
Websites to be monitored
List of Sites to be Monitored and How/
Statistical Information Collected
Administration Website
This is a deployment diagram depicting the distribution
requirement of this system. This system attempts to select as
many free components as possible and if able avoid coding.
Language and Design
Language chosen
Platform: Java
Reason: gains as many platforms as possible
minimizing need to rewrite coding.
Multi-threaded design
More efficient than signal thread design due to
the ability to channel larger quantities of data
Uses HTTP requests to gather factors
Monitoring Agents Cont.
HTTP Request layer:
HTTPPURLConnection by Java – Lacks key
features
Oakland Software – not often updated
Still attempting to find adequate library to supply
request layer
Monitoring Agent Cont.
User interface (UI) layer Options:
Platform: Swing*
Goal – Boost performance of the Java GUI
while keeping the platform consistent
Checking the targets
In order to check the health status of remote
monitoring the agent should have a variety of
capabilities. The system uses various
manipulations of HTTP to determine variables.
Monitoring Agents Cont.
Database Persistence Layer
“Container Managed Persistence” This
application is designed to reduce needed labor
and run as a stand alone model .
Less Programming Means:
Reduced Learning curve
Easily and more widely accessible
Lower maintenance and troubleshooting
More cost efficient
Communication
Communication:
1.
2.
3.
4.
Evaluating Web Services
Choosing the right protocol
Registry options
Accelerating Java Web service
Company
development
5. Accelerating Hibernate development
LOGO
6. Logging
Evaluating Web Services
WHAT DO WEB SERVICES DO?
Web services will act as the communication layer
to relay messages to central Admin server.
FACTS:
Light weight and based on SOAP
Can go through firewall ports like HTTP
Difficult for hackers to penetrate
Scalability can be achieved by using a cluster solution
Language dependent and interoperability is default
Choosing the right protocol
Web services protocols was choose due to
the fact it was directly available under the
JDK to reduce the cost of ownership.
There are three options:
Soap with Attachment API for Java (SAAJ)
Java API for XML Messaging (JAXM)
API for XML-based RPC (JAX-RPC)*
Registry options
Public Access
Eventually the definitions have the
potential of becoming public access.
Since the application is rights private
registry is not the best choice
Recommendation
Reduce efforts in providing communication
Accessing WSDL URL is enough to
minimize complications
Accelerating Hibernate development
Accelerating Hibernate development
Many hibernate files need to be programmed
and hand-coded into Java and XML files
eclipse IDE with hibernate tools generated
files based on created tables.
Allows for work to be completed much easier
reducing the overall need for resources
Logging
What is a log/ what does it do?
Helps to defrayment large portions of
tangled code. Often not introduced until
emanate disaster.
What are the benefits?
Can be turned off without affecting code
Can be rolled over according to date
Format can be easily changed
Can be sent over a central host
The Backend Server
1. The Backend server
•
•
•
MVC Framework used
Code Generation
Logging
2. Configuration
•
•
Front-end System
Back-end System
Company
LOGO
The Backend server
Requirements of a back end server:
Consolidate remote agents
Dispatch changes of targets to be monitored
Analyze fire alarms in case system goes
down or is being hacked
Present findings in a simple format
Facilitate easy performance tuning
MVC Framework used
MVC Framework
Platform: Spring* - integrates libraries and
counter effects weaknesses
Advantages of MVC Development
Reduces efforts
Isolates application logics
Improves integration
Code Generation
Code Generation
Platform: Trail – based on domain
driven framework, the main objective to
boost speed of development.
Trail was chosen choose because it
also solves some of the common
problems like the inability to design the
HTML layout conveniently using UML.
Logging
Although most web containers provide a
central place for storing application log,
findings have shown that the functionality
provided is inadequate and thus the
decision was made to use the same library
“log4j” in both back-end and front-end
system models.
Conclusion/Future Works/Recap
Company
LOGO
Front-end System
Language: Java
Library: Hibernate
IDE: Eclipse with Hibernate Tools
DB: MySQL
DB Modeller: FabFORCE DBDesigner.
Back-end System
Language: Java
Container: Tomcat
Library: Hibernate, Spring, Trail
IDE: Eclipse WTP
DB: MySQL
DB Modeller: FabFORCE DBDesigner
Future Works
1. Studying the use of a script language for
the monitoring of complex sites is a
concept being investigated.
2. There is also interest in the reliability of
the e-monitoring system itself.
3. In addition interested has been invested
into adapting this approach for another
project for monitoring of stock trading
systems.
Any Questions ~ Thank You
Company
LOGO