310 likes | 436 Views
Chemical Toxicity and Safety Information System. Shuanghui Luo Ying Li Jin Xu. Outline. Introduction Goals and system functionalities Technologies and tools System architecture Illustration of the implementation. Cheminfomatics.
E N D
Chemical Toxicity and Safety Information System Shuanghui Luo Ying Li Jin Xu
Outline • Introduction • Goals and system functionalities • Technologies and tools • System 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 Metadata: Data that describes data; Structured data about data. 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. Durableindependent 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
Goals Browser • 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 Tier Servlet Representation Tier EJB Business Tier Integration Tier meta-data layer Resource Tier DB1 DB2 DB3
System Functionalities • Online search application • Presents users chemical toxicity, risky, and safety information and services • Manages user logins for security • The 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) Browser EIS resources Web container EJB container Meta Data Layer HTML Servlets Enterprise Beans 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
System architecture Tier 1 Tier 2 Tier 3 EJB container UserDBBean (Entity Bean) ChemDBBean Entity Bean SafeDBBean Entity Bean RiskDBBean Entity Bean Database AdminBean Sesssion Bean LoginBean Sesssion Bean QueryBean Sesssion Bean Web Browser Servlet Web container
Proposed System architecture Web Browser Web container Servlet EJB Container LoginBean Sesssion Bean AdminBean Sesssion Bean QueryBean Sesssion Bean UserDBBean (Entity Bean) Knowledge Database Entity Bean Meta Data Layer ChemDBBean Entity Bean1 ChemDBBean Entity Bean3 ChemDBBean Entity Bean2 DB1 DB2 DB3
EJB Beans Four 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
Servlets • 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.
File structure (1) Root=/cheminfo Ant Project scripts:= /build Package com.cheminfo: =/com/cheminfo chem risk 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
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
<?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> ejb-jar.xml example
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> ……..
Administrator Change user’s information
User New User register New User registered successfully