1 / 54

Developing Enterprise Applications A Technical Perspective

Developing Enterprise Applications A Technical Perspective. V. “Juggy” Jagannathan West Virginia University. Introduction. Goals of today’s presentation:. Provide an overview of the technologies that are relevant to the development and deployment of enterprise solutions.

Download Presentation

Developing Enterprise Applications A Technical Perspective

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Developing Enterprise ApplicationsA Technical Perspective V. “Juggy” Jagannathan West Virginia University

  2. Introduction Goals of today’s presentation: Provide an overview of the technologies that are relevant to the development and deployment of enterprise solutions Allow participants to evaluate where the technology is headed

  3. Technology solutions What is an Enterprise Application (EA) ? • EA Requirements • Platform Choices • OMG approach • Web Services • Java • .NET • Security technologies • Communication technologies • Storage advances • Sample systems

  4. Definition What is an EA? • An Enterprise Application (EA) allows large number of clients to use complex application software using Internet Protocols. • EAs provide infrastructure to host the application • As enterprise applications, EAs must satisfy a wide range of stringent requirements

  5. Technology solutions What is an EA? . • EA Requirements • Platform Choices • OMG approach • Web Services • Java • .NET • Security technologies • Communication technologies • Storage advances • Sample systems

  6. Technology solutions EA Requirements • Supportability • Maintainability • Interoperability • Platform Independence • Location Independence • Open Standards and Systems • Architecture Choices • Flexibility • Security • Reliability • Availability • Scalability • Evolvability • Performance

  7. Technology solutions What are EA flexibility requirements? EA Requirements • Flexibility • Security • Reliability • Availability • Scalability • Evolvability • Performance • Solutions that satisfy the customer’s workflow needs • For healthcare documentation: • Dictation workflow • Transcription workflow • Signature workflow • Routing workflow • Coding workflow It’s the process, stupid! Not technology. —Mike Waldrum, UAB

  8. Technology solutions Off-Premise Computation Internet On-Premise Computation EA Requirements • Flexibility • Security • Reliability • Availability • Scalability • Evolvability • Performance Flexibility:Edge Computing Focus computation where it can be most effective to meet the needs of the workflow

  9. Technology solutions What are EA security requirements? EA Requirements • Flexibility • Security • Reliability • Availability • Scalability • Evolvability • Performance • Compliance with HIPAA regulations – Privacy protection • Data encryption • Stringent access control • Audit trails • Physical security of premises • Virus and intrusion protection Encryption...is a powerful defensive weapon for free people. It offers a technical guarantee of privacy, regardless of who is running the government... It's hard to think of a more powerful, less dangerous tool for liberty. —Esther Dyson

  10. Technology solutions What are EA reliability requirements? EA Requirements • Flexibility • Security • Reliability • Availability • Scalability • Evolvability • Performance • No work is ever lost • No document is ever lost or corrupted • Proven backup and recovery strategies are in place • Physical infrastructure (data center) has ample protection, including fire protection There are only two kinds of computer users: those who have lost data in a crash, and those who will lose data in a crash. —Bob LeVitus

  11. Technology solutions Issues regarding availability: EA Requirements • Flexibility • Security • Reliability • Availability • Scalability • Evolvability • Performance • What guarantees are provided? • How much down time are you willing to tolerate? How can you find out? • Is there a backup in case a server goes down? • Is there a backup in case of a power outage? • Is there a backup in case of a network outage? • Is there a backup data center? • Is there a disaster recovery plan?

  12. Technology solutions EA Requirements • Flexibility • Security • Reliability • Availability • Scalability • Evolvability • Performance Calculating total availability # of hours per year = 365 x 24 = 8,760

  13. EA Requirements Issues regarding scalability: • Flexibility • Security • Reliability • Availability • Scalability • Evolvability • Performance • What happens when you add more users? More volume? How easy is it to upgrade infrastructure? • Does the company have the financial resources to improve the infrastructure? Sooner or later, you will need scalability, which means the ability to add hardware. Just as we could have rode into the sunset, along came the Internet, and it tripled the significance of the PC. —Andy Grove

  14. EA Requirements Issues regarding evolvability: • Flexibility • Security • Reliability • Availability • Scalability • Evolvability • Performance • How easy is it to upgrade? Can you upgrade one user without upgrading others? • What are the technological underpinnings? • Are there automatic upgrades? Solutions must be engineered to continuously evolve and leverage the latest in Internet technologies. Whoever desires constant success must change his conduct with the times. —Machiavelli

  15. Issues regarding performance: EA Requirements • Flexibility • Security • Reliability • Availability • Scalability • Evolvability • Performance • What benchmarks are available? • Time required to submit reports? • Retrieve reports? • Retrieve and sign? • How is the performance under a heavy load? No load? • What is the degradation? Is it acceptable to the user community? • Can you work off-line? Technology is so much fun—but we can drown in our technology. The fog of information can drive out knowledge. —Daniel J. Boorstin

  16. Issues regarding supportability EA Requirements • Supportability • Maintainability • Interoperability • Platform Independence • Location Independence • Open Standards and Systems • Architecture Choices • Can the user manage his/her own support needs? Is support Web-based? • What infrastructure support is available? • Is support 24/7, 365 days? How prompt is response? • Will slow response cause down time? Computers shouldn't be unusable. You don't need to know how to work a telephone switch to make a phone call, or how to use the Hoover Dam to take a shower, or how to work a nuclear-power plant to turn on the lights. —Scott McNealy

  17. Issues regarding maintainability EA Requirements • Supportability • Maintainability • Interoperability • Platform Independence • Location Independence • Open Standards and Systems • Architecture Choices • Who maintains the software? • How is maintenance and software evolution managed? • What technology basis facilitates maintenance? Advanced components and object-oriented technologies facilitate software maintenance and evolution

  18. Issues regarding interoperability EA Requirements • Supportability • Maintainability • Interoperability • Platform Independence • Location Independence • Open Standards and Systems • Architecture Choices • How easy is it to interface to the system? • Does it provide open APIs? • Does it support XML-based data exchange? Document interchange? • Does it support interoperable standards? Correct me if I'm wrong - the gizmo is connected to the flingflang connected to the watzis, watzis connected to the doo-dad connected to the ding dong. —Patrick B. Oliphant

  19. Issues regarding the platform: EA Requirements • Supportability • Maintainability • Interoperability • Platform Independence • Location Independence • Open Standards and Systems • Architecture Choices • What platform is used? Windows or Unix? • Does it support both, leveraging the strengths of both platforms?

  20. Issues regarding user location: EA Requirements • Supportability • Maintainability • Interoperability • Platform Independence • Location Independence • Open Standards and Systems • Architecture Choices • Can users work from home? • Over low speed modem lines? • Work in LAN, WAN environments over secure lines? • Can they work on the go using their PDAs?

  21. Issues regarding standards EA Requirements • Supportability • Maintainability • Interoperability • Platform Independence • Location Independence • Open Standards and Systems • Architecture Choices • What standards are supported? • Internet standards: HTTP, XML, Web services, etc. • Object standards: CORBA, DCOM • Security standards: PKI, SSL

  22. EA Requirements Issues regarding architecture • Supportability • Maintainability • Interoperability • Platform Independence • Location Independence • Open Standards and Systems • Architecture Choices • Platform choices: Microsoft, OMG, Java, Web services • Off-premise, on-premise, edge computing trade-offs • Thin vs. thick clients: trade-offs in functionality, performance and supportability The first rule of any technology used in a business is that automation applied to an efficient operation will magnify the efficiency. The second is that automation applied to an inefficient operation will magnify the inefficiency. —Bill Gates

  23. EA Requirements • Implementation alternatives: • Off-premise—hosted solution—typically viewed as the EA model • Edge computing model: a hybrid model combining EA and an on-premise solution • On-premise solution The choice of a solution depends on the organization’s goals and objectives.

  24. Platform Choices . • What is an EA? • EA Requirements • Platform Choices • OMG approach • Web Services • Java • .NET • Security technologies • Communication technologies • Storage advances • Healthcare standards • Sample systems

  25. What are the options? Platform Choices • Platform standards • Object Management Group (OMG) CORBA infrastructure and approach • Web Services—the new kid on the block • Other popular platforms • Sun J2EE Platform • Windows .NET • Additional platforms • Oracle • IBM • Iona

  26. OMG Approach . • What is an EA? • EA Requirements • Platform Choices • OMG approach • Web Services • Java • .NET • Security technologies • Communication technologies • Storage advances • Healthcare standards • Sample systems

  27. Technology solutions Web Services . • What is an EA? • EA Requirements • Platform Choices • OMG approach • Web Services • Java • .NET • Security technologies • Communication technologies • Storage advances • Healthcare standards • Sample systems

  28. Technology solutions Java . • What is an EA? • EA Requirements • Platform Choices • OMG approach • Web Services • Java • .NET • Security technologies • Communication technologies • Storage advances • Healthcare standards • Sample systems

  29. Platform Choices: Java Java and J2EE Platform Overview

  30. XHTML XML RDBMS Mail Server Java App. HTTP(S) CORBA Server Web Container Applet Tag Library Servlets JSPs J2EE Application Server JAF JAF JavaMail JavaMail Directory Service EJB Container JMS JMS Session Beans Entity Beans JDBC JDBC JTA JTA Client App. Message Queue JNDI JNDI RMI/IIOP RMI/IIOP Reproduced with Permission from Java Server Programming J2EE Edition – Wrox Press, Ltd, 2000 Platform Choices: Java J2EE Architecture

  31. Platform Choices: Java J2EE Platform components: • Java Message Service 1.0 • Java Naming and Directory Interface (JNDI) 1.2 • Java Transaction API 1.0 • JavaMail 1.1 J2EE Connector Architecture 1.0 • Java Authentication and Authorization Service 1.0 • JAXP 1.0 – Java API for XML Processing • JDBC 3.0 – Java Data Base Connectivity • RMI over IIOP • EJB 2.1 – Enterprise Java Beans • Java Servlets 2.4 • Java Server Pages 2.0 Java : J2EE Platform

  32. Platform Choices: Java J2EE Platform • Strong and proven platform • Evolving constantly • Already supports various APIs to develop and deploy web services Java : J2EE Platform

  33. .NET . • What is an EA? • EA Requirements • Platform Choices • OMG approach • Web Services • Java • .NET • Security technologies • Communication technologies • Storage advances • Healthcare standards • Sample systems

  34. Client App. Users .NET Framework Web Services Web Forms Web servers Web servers Web servers Web servers HTTP .NET servers Web servers SOAP UDDI ODBC DCOM .NET Platform Choices: .NET .NET Platform

  35. Platform Choices: .NET .NET Components • .NET framework • Common Language Runtime (CLR) library • ActiveX Data Objects - (ADO.NET) • Active Server Pages – (EA.NET) and supports Web Services (UDDI, WSDL & SOAP) • .NET Compact framework for PDAs • .NET Remoting (RPC support) • Visual Studio .NET • VB, C++, C#, Jscript… all compile to MSIL (Microsoft Intermediate Language) and utilize CLR .NET Platform

  36. Platform Choices: .NET .NET Framework • Microsoft’s big push to open standards and support for XML-based solutions • Fully supports Web Services approach • Microsoft is an active participant in W3C efforts and is a strong proponent of standardization of Web Services and related technologies. .NET Platform

  37. Technology solutions Topic Outline . • What is an EA? • EA Requirements • Platform Choices • OMG approach • Web Services • Java • .NET • Security technologies • Communication technologies • Storage advances • Healthcare standards • Sample systems

  38. Security Technologies Security Concerns • Authentication • Authorization and access control • Data Integrity • Data Confidentiality • Signing and non-repudiation • Audit trails • Virus protection and intrusion detection Security

  39. Security Technologies Technology options: • Hashing/digest creations – SHA, MD5 • Encryption – Symmetric - DES • Encryption – Asymmetric - PKI • Digital Signatures • Trust and Public Key Certificates • Secure Sockets Layer (SSL) • Smartcards, Biometrics (Thumbprints, retinal prints, voice prints) Security

  40. Technology solutions Security Technologies XML and Security • XML Signature • XML Encryption • Security Assertion Markup Language (SAML) • XKMS – XML Key Management Specifications • X-KISS – XML – Key Information Service Specification • X-KRSS - XML Key Registration Service Specification Security

  41. Technology solutions Topic Outline . • What is an EA? • EA Requirements • Platform Choices • OMG approach • Web Services • Java • .NET • Security technologies • Communication technologies • Storage advances • Healthcare standards • Sample systems

  42. Technology solutions Communication Technologies • Ethernet • Wireless • Phone • GSM • CDMA/TDMA • Network • Bluetooth • 802.11b • Zigbee • Broadband • DSL • Cable Communication

  43. Communication Technologies Broadband technology • High bandwidth Internet connection • Always on—no need to explicitly establish connection • Supports audio and video in addition to data connectivity • Typically, downstream bandwidth is a lot higher than upstream bandwidth Communication

  44. Communication Technologies Bandwidth • Options: • DSL • Cable Modem • Check out how much bandwidth you have from your broadband provider! http://www.toast.net/performance/ http://www.dslreports.com/stest Communication

  45. Storage Advances . • What is an EA? • EA Requirements • Platform Choices • OMG approach • Web Services • Java • .NET • Security technologies • Communication technologies • Storage advances

  46. Technology solutions Storage Advances Storage Requirements • A microcosm of EA requirements • Storage technologies have to address these issues: • Availability • Reliability • Scalability • Performance • Security Storage

  47. Storage Advances Storage Technologies • RAID technology – primarily to address reliability and performance issues • Storage Area Networks (SAN) and Network Attached Storage (NAS) – primarily to address scalability and availability issues • SAN – to increase the storage capacity of a server (say, a database server) • NAS – to increase the storage capacity of file servers on the network Storage

  48. Storage Advances What is RAID? • Redundant Array of Inexpensive/Independent Disks • Can be implemented in software or hardware Storage

  49. Technology solutions Storage Advances RAID Configurations • RAID0 striping Simple striping of data across all the disks in an array. Improves load balancing and performance. Does not provide redundancy. Total capacity = Individual Disk capacity * number of disks in array • RAID1 mirroring Mirroring of data in multiple disks. Provides redundancy. Total capacity = Individual Disk capacity * (number of disks in array/2) • RAID0+1  RAID0 and 1 strategies are combined to provide high performance and reliability. Storage

  50. Storage Advances RAID Configurations • RAID 5 Use of Error Correction Codes to increase capacity in RAID arrays. Total capacity = Individual Disk capacity * (n-1) where n is number of disks in array Higher disk capacity. Good for small reads, bad for writes. Can recover from any one disk failure. • RAID 6  same as RAID 5, but can tolerate two disk failures. Storage

More Related