TietoEnator Presentation Java-technology based projects TietoEnator Corporation Oyj Simo Vuorinen simo.vuorinen@tietoenator.com 1 TietoEnator©2000 TietoEnator Presentation Agenda Java: language, architecture, platform? Javan promises and problems Enterprise-APIs Java-component architectures: JavaBeans and EJB Application servers Experiences and experiments Close-up and future visions 2 TietoEnator©2000 TietoEnator Presentation Java: language, architecture, platform? Programming language: Easy-to-use object-oriented programming language, which has been cleaned of features that used to cause problems in C and C++. Designed for Internet- and WWW-use. Via Web-browser Java gives the possibility to use applications from anywhere in the world. Java is distributed, interpreted architecture- and platform-neutral programming language that can be used in addition to traditional application building also applets (small applications running in WWW-browser). Applets can be downloaded over the network from anywhere in the world. 3 TietoEnator©2000 TietoEnator Presentation Java: language, architecture, platform? Architecture generally: Architecture (application architecture, system architecture) defines the guidelines, which together help to achieve the information system goals without the need for ad hoc-compromises during the implementation of the system. Architecture defines •general usability •performance and scalability •availability and robustiness •security Architecture Logical Logicalarchitecture architecture Technical Technicalarchitecture architecture Architecture can be divided into •logical architecture: •what is to be done; db-, UI-, bl-services and utilities •technical architecture: •with what tools; os, db, mw, development tools 4 TietoEnator©2000 TietoEnator Presentation Java: language, architecture, platform? JavaOS Logical LogicalArchitecture Architecture JECF JECF Business Businesslogic logic Technical TechnicalArchitecture Architecture Java JavaWebServer WebServer Java JavaApplication ApplicationServer Server Java JavaEnterprise EnterpriseAPIs APIs 5 TietoEnator©2000 Version: 1.4 TietoEnator Presentation Java Architectural Layers Data Management Business Logic Presentation Navigation Legacy TP TCP/IP MW (transport) logic JDBC TCP/IP DB DB DATA Java, HTML IIOP + JavaOS: 400 % Pure? RMI JDBC TCP/IP DB HTTP IIOP Sockets HTTP HTTP Server DATA Servlets JSP EJB JTS RMI IIOP IIOP HTTP JDBC J/SQL Java Application Server (JAS) Java App. App. DB 300 % Pure 6 TietoEnator©2000 200 % Pure 100 % Pure TietoEnator Presentation Java-platforms 7 TietoEnator©2000 TietoEnator Presentation Where does Java run? 8 TietoEnator©2000 TietoEnator Presentation Java’s promises and problems Ease of use Feature richness Desktop-features Performance Matureness 9 TietoEnator©2000 TietoEnator Presentation Java’s promises and problems WWW: Applets more functionality “real” applications in WWW “write once, run anywhere” 10 TietoEnator©2000 Problems with firewalls problems with browsers and their versions applets tend to be big; downloading is slow TietoEnator Presentation Java’s promises and problems Java-applications Same application runs anywhere that you can find a VM Programmers don’t make as many errors as they used to made network-ready threads are easily implemented 11 TietoEnator©2000 Interpreting slows down the application Critical real-time-applications require good memory management; GC is in important role desktop features have been deficient for enterprise usage; printing, drag-drop, db-handling TietoEnator Presentation Java’s promises and problems Java’s performance Has been slow But is getting better JIT-compilers native compilers HotSpot 14 12 10 8 Sym JIT IE4 C++ HotSpot 6 4 0 12 TietoEnator©2000 Demo JavaOne: 2 Version: 1.0 TietoEnator Presentation Java Enterprise-APIs Client Client HTML Java Java Beans Beans components components IIOP, other other protocols protocols JSP/Servlets JSP/Servlets Enterprise Enterprise Java Java Beans Beans components components Server Server Platform Platform JTS JTS 13 JavaMail JavaMail TietoEnator©2000 JNDI JNDI JIDL JIDL JMS JMS JDBC JDBC RMI-IIOP RMI-IIOP TietoEnator Presentation Java Enterprise-APIs Enterprise JavaBeans Architecture The Enterprise JavaBeans specification defines an API that will make it easy for developers to create, deploy and manage cross-platform, component-based enterprise applications that work within the framework of the systems currently in use. JavaServer Pages JavaServer Pages combines easy-to-use server-side tags with the power of JavaBeansTM components to provide a solution that cleanly separates the presentation of dynamic content from the generation of that content. Neutral to development platforms and Web servers, it's a Write Once, Run AnywhereTM solution. Java Servlet Java Servlet provides a uniform, industry-supported interface for extending a web server with cross-platform and cross-server components written in the Java Programming Language. Java Naming and Directory Interface Provides uniform, industry-standard, seamless connectivity from the Java platform to business information assets, thus allowing developers to deliver Java applications with unified access to multiple naming and directory services across the enterprise. Java Interface Definition Language (IDL) Provides interoperability with CORBA, the industry standard for heterogeneous computing. Java IDL includes an IDL-to-Java compiler and a lightweight ORB that supports IIOP. 14 TietoEnator©2000 TietoEnator Presentation Java Enterprise-APIs JDBC Provides programmers with a uniform interface to a wide range of relational databases, and provides a common base on which higher-level tools and interfaces can be built. Java Message Service (JMS) The Java Message Service specification provides developers with a standard Java API for enterprise messaging services such as reliable queuing, publish and subscribe communication and various aspects of push/pull technologies. Java Transaction (JTA) Java Transaction API (JTA) defines a high-level transaction management specification intended for resource managers and transactional applications in distributed transaction systems. Java Transaction Service (JTS) The Java Transaction Service (JTS) API technology ensures interoperability with sophisticated transaction resources such as transactional application programs, resource managers, transaction processing monitors and transaction managers. Since these components are provided by different vendors, JTS provides open, standard access to these transaction resources. 15 TietoEnator©2000 TietoEnator Presentation Java Enterprise-APIs JavaMail The JavaMail API provides a set of abstract classes that models a mail system. The API is meant to provide a platform independent and protocol independent framework to build Java-based mail and messaging applications. RMI/IIOP RMI-IIOP provides developers an implementation of the Java RMI API over the Object Management Group's industry-standard Internet Inter-Orb Protocol (IIOP). With it, developers can write remote interfaces between clients and servers, and implement them just using Java technology and the Java RMI APIs. 16 TietoEnator©2000 TietoEnator Presentation Java-components: JavaBeans and EJB JavaBeans (Client-component architecture): JavaBeans-component is composed of three parts: Properties Methods MyBean … getXXX setXXX doStuff() fireEvent(Event ev) Events Register Event Listener Event Object Fire Event 17 TietoEnator©2000 SomeClass SomeClass Version: 1.0 TietoEnator Presentation Java-components: EJB J2EE Server Java Clients EJB Clients: - Client access is controlled by the container - EJB’s are located through JNDI - RMI and CORBA are means of accessing a bean over a network 18 Web Container Web Container: - Runtime Environment for JSP and servlets TietoEnator©2000 / Versio: 1.1 EJB Container J2EE Server: EJB Container: EJB Components - Naming and Directory - Authentication - HTTP -- EJB - Specialized Java class - Distributed over a net - Transactional & Secure - Server vendor tools provide: distribution, transaction, security - Runtime Environment for an EJB - Transaction mgmt. - Security - Remote client connectivity - Life cycle mgmt. - DB Connection Pool Version: 1.4 TietoEnator Presentation BEA WebLogic Enterprise Data Services / Logic Legacy M3 (OTM) WRAP IIOP Application EJB Application Tuxedo TCP/IP Application Application JDBC 19 EJB COM CORBA RMI IIOP Java TietoEnator©2000 Application Servlets JOLT Clustering JTS, JNDI, RMI, DCOM HTTP Server DATA DB WebLogic CORBA DATA DB Client HTTP ActiveX, COM HTML Version: 1.1 TietoEnator Presentation CASE: Jaguar CTS Application Layer Jaguar CTS Data Business Logic Layer (Java Classes) DB JDBC Oracle DB DBTransactionC Service Layer TDS JagDBAction HTTP Server getComp DATA Client HTTP DBAction GUI Layer (Java) BugInfoapplet 20 TietoEnator©2000 / Versio: 1.1 Version: 1.1 TietoEnator Presentation CASE: Servlets and Java Data Application Layer DB Layer (Java Classes) Service Layer (Servlets) Collector DATA DB TCP/IP WFService FileNet M2User Servlets GUI Layer (Java) DATA JDBC DB TCP/IP M2DB Oracle DB 21 TietoEnator©2000 / Versio: 1.1 M2Html Gen HTTP Server Business Logic Layer (Java Classes) Client HTTP HTML Version: 1.0 TietoEnator Presentation What does Java offer? • • • • • • • Client-component architecture (JavaBeans) Server- component architecture (EJB) 4 different Java-application environments 11 enterprise-APIs 8 core-APIs(JFC, Security, JavaBeans, 2D, ...) lot of extensions, frameworks, etc. Platform-neutrality in reasonable scale 22 TietoEnator©2000 Version: 1.0 TietoEnator Presentation Where can Java be chosen? • BL requires integration with Internet-technology • Old systems C/C++ Client-Server-systems • application is meant to be deployed on more than one platform 23 TietoEnator©2000 Version: 1.0 TietoEnator Presentation When not to choose Java? • System is complex, business-critical and must be in production in six months • Lot of integration is needed with legacy-systems • Existing 3rd-party products fill the need 24 TietoEnator©2000 Version: 1.0 TietoEnator Presentation Mistakes in WWW-technology projects can be caused by: • • • • • • • 25 Lack of Internet- and WWW-knowledge Too big of a desire of experimenting new tech Lack of knowledge in Internet security Not making a proof-of-concept Not testing enough: profiling, load testing, etc. Lack of inspections Lack of architecture lining TietoEnator©2000 Version: 1.0 TietoEnator Presentation Mistakes in Java-technology projects can be caused by: • • • • • 26 Component recognizing C-style, procedural programming Disregarding internal security Complex object-object relations Mixing objects with components TietoEnator©2000
© Copyright 2024