Date post: | 28-Dec-2015 |
Category: |
Documents |
Upload: | amie-dickerson |
View: | 229 times |
Download: | 0 times |
Outline
IntroductionGoals and system functionalitiesTechnologies and toolsSystem architecture Illustration of the implementation
Cheminfomatics
Cheminformatics is an exciting and rapidly developing field, and focuses on solving problems arising from chemistry using methodology from computer science.The practice not only to leverage the accumulated knowledge in various forms but also to derive new understanding based on the available knowledge using information technologies and tools.
Introduction
Significance:
Our designed system is to provide a useful on-line resource for different users such as scientists, students and so on.
To show the selected chemical toxicity, risky and safety
information. To compare the toxicity data, risky and safety phrases with the analogue chemicals. To indicate the risky phrases and safety guidelines, for example, some chemicals are high toxic and need to keep away from human being and living entities.
Metadatabase
Precise Enables the creation of customized “virtual collections”--pulling objects together seamlessly from any digital space to meet exact information requirements.
Flexible Supports any search engine, search strategy, transport or display option
Efficient Provides immediate access to the most appropriate asset for the searcher.
Durable independent of changes to hardware, software and network infrastructure
Interoperable Can be seamlessly shared across the web with disparate hardware, software, network infrastructure and search engines
Metadata: Data that describes data; Structured data about data.
Goals
Establish a distributed chemical toxicity and safety information service system using a multi-tier architecture
Follow the process of software development
Learn and apply middleware technologies (EJB and XML)
Understand distributed meta-database service
Client TierBrowser
Servlet
EJB
DB2
Representation Tier
BusinessTier
IntegrationTier
Resource Tier DB1 DB3
meta-data layer
System Functionalities
Online search applicationPresents users chemical toxicity, risky, and safety
information and servicesManages user logins for securityThe meta data layer will integrate data from distributed
sources and does some analysis and returns the corresponding data table and view in graph.
Technology and Tools (1/3)
BrowserBrowser
Web container
Web container
EJBcontainer
EJBcontainer
EISresources
HTML
Servlets Enterprise Beans
Meta DataLayer
Meta DataLayer
Entity Bean
Technology and Tools (2/3)
EJB ( Enterprise Java Beans) Server-side architecture for distributed, transactional components. Framework for easily creating business objects.(e.g. transaction,
naming, persistence services) Relive developers from managing• Low-level transaction and state management• Multithreading and resource pooling• Security• Persistence and other complex APIs.
Provide standard Java component architecture.• Allow combining components developed using different tools.• Compatible with existing server platforms, existing Java APIs and CORBA.• Write once, and run anywhere.
Technology and Tools (3/3)
•Java: programming language•Servlet: web presentation•XML: used to write deployment descriptor•Jboss-Jetty •Ant - Build Tool
•MS-Access: DB1•SQL-Server: DB2•Oracle: DB3
Web BrowserWeb
Browser
Database Database
Tier 1 Tier 2 Tier 3
EJB container
Web container
Servlet
QueryBeanSesssion Bean
ChemDBBean Entity Bean
UserDBBean(Entity Bean)
AdminBeanSesssion Bean
SafeDBBean Entity Bean
RiskDBBean Entity Bean
LoginBeanSesssion Bean
System architecture
Web BrowserWeb
Browser
DB3 DB3
Web container
Servlet
QueryBeanSesssion Bean
UserDBBean(Entity Bean)
AdminBeanSesssion Bean
LoginBeanSesssion Bean
Proposed System architecture
DB2 DB2 DB1 DB1
ChemDBBean Entity Bean1
ChemDBBean Entity Bean2
ChemDBBean Entity Bean3
EJB Container
Entity BeanMeta Data Layer
Knowledge Database
Knowledge Database
EJB BeansFour Entity Beans• UserDBBean: store user information for user management. • ChemDBBean: store chemical toxicity, and chemical properties.• RiskDBBean: store chemical information about risky phrases.
• SafeDBBean: store chemical information about safety phrases Three Session Beans• LoginBean: handle user verification (uses UserDBBean check
the user ID and password)• AdminBean: for administrator to manage user accounts• QueryBean: handle client request retrieve chemical information
LoginServlet: User verification.
FormulaServlet: Query by chemical formula.
QueryServlet: Query for chemical information including toxicity, risky and safety phrases.
Compareservlet: Compare chemical information by category.
Servlets
Root=/cheminfo
Ant Project scripts:= /buildPackage com.cheminfo:
=/com/cheminfo
chem risk
File structure (1)
safe user query login admin servlet html
Container-managed Persistence(CMP)
Container automatically manages persistence. (Developer does not write database calls.)
The CMP-field element describe a container managed field. The field element includes an optional description of the field, and the name of the field.
Container-managed Persistence(CMP) cont’d
Since the container is accessing the database on behalf of the bean, the container need to know:
a) the fields that are to be persisted by the container
b) the type of persistence, connection to database
c) the table name, the mapping between table columns
d) field names in the beans
e) the semantics of the finder methods and so on. This information is specified in the deployment
descriptors: ejb-jar.xml; jboss-web.xml, web.xml, jaws.xml
ejb-jar.xml
This file tells the EJB server which classes make up bean implementation, the home interface and the remote interface. Also called deployment descriptor.
ejb-jar.xml example <?xml version="1.0" ?> <!DOCTYPE ejb-jar (View Source for full doctype...)> - <ejb-jar> <display-name>Chemical Toxicity and Safety</display-name> - <enterprise-beans> - <entity> <description>User database</description> <ejb-name>UserDBBean</ejbname> <home>com.cheminfo.user.UserDBHome</home> <remote>com.cheminfo.user.UserDB</remote> <ejb-class>com.cheminfo.user.UserDBBean</ejb-class> <persistence-type>Container</persistence-type> <prim-key-class>java.lang.String</prim-keyclass> <reentrant>False</reentrant> -<cmp-field> <field-name>UserName</field-name> </cmp-field> - <cmp-field> <field-name>PassWord</field-name> </cmp-field> - <cmp-field> <field-name>Email</field-name> </cmp-field> -<cmp-field> <field-name>Address</field-name> </cmp-field> -<primkey-field>UserName</primkey-field> </entity>
jboss-web.xml file Specify servlets & beans about their setup to
deploy the web application.
Example:
A servlet wants to call methods on a bean B
B bean = home.create(pk);
the servlet must declare a reference to the ejb in
its deployment descriptor.
This is done by an <ejb-ref> tag in the web.xml file.
jboss-web.xml example
<?xml version="1.0" encoding="UTF-8" ?> - <jboss-web>- <ejb-ref> <ejb-ref-name>ejb/Admin</ejb-ref-name> <jndi-name>cheminfo/Admin</jndi-name> </ejb-ref>- <ejb-ref> <ejb-ref-name>ejb/Login</ejb-ref-name> <jndi-name>cheminfo/Login</jndi-name> </ejb-ref>- <ejb-ref> <ejb-ref-name>ejb/Query</ejb-ref-name> <jndi-name>cheminfo/Query</jndi-name> </ejb-ref>
- <ejb-ref> <ejb-ref-name>ejb/ChemDB</ejb-ref-name> <jndi-name>cheminfo/ChemDB</jndi-name> </ejb-ref>- <ejb-ref> <ejb-ref-name>ejb/RiskDB</ejb-ref-name> <jndi-name>cheminfo/RiskDB</jndi-name> </ejb-ref>- <ejb-ref> <ejb-ref-name>ejb/SafeDB</ejb-ref-name> <jndi-name>cheminfo/SafeDB</jndi-name> </ejb-ref> </jboss-web>
jaws.xml file
JAWS is the mapper used by JBoss to manage CMP entity beans.
Specify a datasource and the type-mappings to use with it
Set a bunch of options concerning jaws behavior Specify how JAWS should build/use your tables Define finders to access you entity beans Define a type mapping
jaws.xml example <jaws>
<datasource>ChemInfoDB</datasource> <type-mapping>MS SQLSERVER</type-mapping> <enterprise-beans> <entity> <ejb-name>UserDBBean</ejb-name> <table-name>user</table-name> <create-table>false</create-table> <cmp-field><field-name>UserName</field-name>
<column-name>UserName</column-name></cmp-field> <cmp-field><field-name>PassWord</field-name><column-
name>PassWord</column-name></cmp-field>
<cmp-field><field-name>Email</field-name><column-name>Email</column-name></cmp-field>
<cmp-field><field-name>Address</field-name><column-name>Address</column-name></cmp-field>
</entity>name> <create-table>false</create-table> <cmp-field> <field-name>UserName</field-name> <column-name>UserName</column-name> </cmp-field> ……..