Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

L01 Introduction to Enterprise Software


Published on

Í þessum fyrsta fyrirlestri fjöllum við um Enterprise forrit, hvað einkennir þau og hvaða áskoranir við stöndum frammi fyrir. Byrjum á því að skoða forritunarlausnir í samhengi við þróun undanfarinna ára. Menn tala um að nú séu "post PC" tímabil þar sem einkatölvan eins og við þekkjum hana er bara eitt af mörgum tækjum sem við notum. Forritun okkar geta verið snjallsíma öpp eða PC forrit og gögnin okkar eru í tölvuskýjunum.

Við skilgreinum hvað er átt við með Enterprise forritun og tökum fjölmörg dæmi. Skilgreinum B2B, B2C og tegundir af lausnum. Þá lítum við á þróun enterprise lausna frá Client-Server til gagnavera sem hýsa microservice lausnir. Slæmu fréttirnar eru að það er mjög erfitt að smíða svona lausnir, en góðu fréttirnar eru að við höfum fjölmörg tæki og tól til að hjálpa okkur.

Published in: Software
  • Be the first to comment

L01 Introduction to Enterprise Software

  2. 2. Agenda The Post-PC era Enterprise Application Building Blocks Evolution of Enterprise Software Building Blocks
  3. 3. Reading Brown: 1-7 Hönnun og smíði hugbúnaðar 2015 - lýsing á námskeiðinu Digital Lifestyle Eric Schmidt talks the Future of Enterprise Software Mobile is Eating the World Enterprise Software Software as a Service
  4. 4. The Post-PC era
  5. 5. Eric Schmidt Future of Enterprise Software Conversation with Salesforce CEO, Marc Benioff
  6. 6. 1960 1970 1980 1990 2000 2010 Mainframes Mini  computers Personal  Computers Servers Clusters Cloud  –  utility  computing Laptops Music  player 2G  Cell  phones CONVERGE DIVERGE Smartphones Tablets Smart  TV Internet  of  things Smartwatch
  7. 7. 2000 2010 THE DIGITAL DECADE
  8. 8. “[The Personal Computer] can become the 'Digital Hub' of our emerging digital lifestyle, adding tremendous value to our other devices.” - Steve Jobs, 2001 Keynote introducing the iPod THE DIGITAL DECADE
  10. 10. 2000 2010 iMac iPhone iMac G3   Mac OS 9.0.4
 500 MHz PowerPC G3 CPU, 128MB Memory
 Screen - 786K pixels
 Storage - 30GB Hard Drive iPhone 4  iOS 4.0
 1 Ghz ARM A4 CPU, 512MB Memory
 Screen - 614K pixels
 Storage - 32GB Flash Drive
  12. 12. 1981-2011 The era of the PC
  16. 16. Source: Slides from Benedict Evans, A16Z, ITU Growth into the Bubble
  17. 17. Source: Slides from Benedict Evans, A16Z, ITU Growth since the Bubble
  18. 18. Source: Slides from Benedict Evans, A16Z, ITU Growth into the Future
  19. 19. The Post-PC Era The Personal Computer era is over Rise of the network Smart phones rule the world APIs Enterprise systems are accessible by consumers, not operators Everything gets connected, IoT
  20. 20. Challenges in Computing New Requirements Way more users (millions), more complicated software Uptime, security and reliability Scalability Competition drives need for productivity - time to market Leveraging investments – integration with existing systems
  21. 21. 1980 1990 2000 Hardware Connecting hardware Network Software Connecting
 software Challenges in Computing Software and integration of components and devices are the challenges ahead Cloud computing and ubiquity Move to Service Oriented Architecture or micro services and APIs
  22. 22. New Approach to Software Architecture
  23. 23. Which  of  the  following  statements  is  not  true? A) The  challenge  ahead  is  to  connect  software   B) The  PC  is  no  longer  a  device  for  development   C) Computing  has  moved  to  the  cloud   D) During  the  digital  decade,  the  PC  was  the  digital  hub  for  all  you  devices   QUIZ
  24. 24. Enterprise Applications
  25. 25. 40
  26. 26. Enterprise Applications Software running in corporate data centers Characteristics: ✦ Involve data, some times huge amounts ✦ Concurrent data access, multiple users ✦ Lot of user interface screens ✦ Integration with other enterprise application ✦ Use of middleware software, such as databases, application servers, web servers ✦ Operated by specialists – system operators
  27. 27. Examples B2C - Business to Consumer ✦ E-commerce web sites such as Amazon, eBay ✦ Commercial services like banking B2B – Business to Consumer ✦ Payroll, patient records, shipping tracking, cost analysis, credit scoring, insurance, supply chain, accounting, customer service, and foreign exchange trading ✦ Content such as: Stock quotes, sports results, email, blogs
  28. 28. Software as a Service (SaaS) “On-demand” software ✦ Cloud computing IT infrastructure demands ✦ Communication: interacting with the software ✦ Scalability: dealing with fluctuation ✦ Dependability: available 24/7
  29. 29. Software as a Service Examples E-mail services Project management Blog services
  30. 30. What  is  not  necessarily  characteristic  of  enterprise  software? A) Has  many  concurrent  users  working  on  the  same  data   B) Integrates  with  other  IT  systems   C) Deploys  some  form  of  distribution  strategy   D) Is  operated  by  specialists  not  by  the  users   QUIZ
  31. 31. Evolution of Enterprise Software
  32. 32. Evolution 60 70 80 90 00 IBM   Mainframes   Limited   layering  or
 abstraction IBM,  DEC   Mini-­‐
 computers   Unix,  VAX   “Dumb”   terminals   Screens/DB PC,  Intel,   DOS,  Mac,  
 Client/Server   DB Windows   Internet   HTTP   Web  
 Browsers   Web
 Applications   DB Windows,
 Linux   MacOS   Browsers,   Services   Domain
 Applications   DB
  33. 33. 60s 70s 80s 90s 00s IBM   nframes   mited   ering  or
 traction IBM,  DEC   Mini-­‐
 computers   Unix,  VAX   “Dumb”   terminals   Screens/Files PC,  Intel,   DOS,  Mac,  
 Client/Server   RMDB Windows   Internet   HTTP   Web  
 Browsers   Web
 Applications   RMDB Windows,
 Linux   MacOS   Browsers,   Services   Domain
 Applications   RMDB iOS   Android   HTML5   Browsers   Apps   API   Cloud   NoSQL 10s Evolution
  34. 34. Server Database Network protocolWindows Client Windows Client Two layer system Thick native client running on a PC, contains all the presentation and domain logic Connects to the server for data Client-Server Network protocol
  35. 35. Server Database Network protocolWindows Client Windows Client Limited reusability Requiers installation and configuration Versioning is hard Dependant on specific OS Not accessible from outside Client-Server Network protocol
  36. 36. Network protocolPresentation Layer Presentation Layer Classical three layers Presentation Layer for the user interface, view and input Domain Layer for the business logic Data Source Layer for the data access Move to Three Layers Network protocol Domain Layer Data Source Layer Database
  37. 37. HTML/HTTPWeb Browser Web 
 Browser The Web added new challenges The browser accesses strings of tags (HTML) Move the logic from client to a web layer Enter the Web Layer HTML/HTTP Domain Layer Data Source Layer Database Web Layer Presentation Layer
  38. 38. HTML/HTTPWeb Browser Web 
 Browser Domain components are deployed on Application Servers - Distributed multi-tiered applications - Examples: Spring, EJB containers Application Servers HTML/HTTP Domain Layer Data Source Layer Database Web Layer Web Server Application Server
  39. 39. Web Server Domain Layer SOAP HTTP SOAP Web Browser Native App SOAP Web Browser HTTP Server SOAP Client Built software into independent services Use APIs such as SOAP to expose functionality Service Oriented Architecture (SOA)
  40. 40. Web Browser Native App CMS Web Server Web Server HTML REST REST Microservices Built software into (smaller) independent services Use RESTful APIs with Json Content Management System for all operator editable content
  41. 41. Client Types Native Applications Apps Usually use some OS GUI and APIs Windows, Linux, MacOS, iOS, Andriod Communication can be anything Use the power of the device Embedded Run inside Web Browsers Flash, Java Applets Communication with XML using HTTP Standardised, provide rich functionality in limited browsers Rich Internet Application (RIA) JavaScript calls REST/ SOAP services for data HTML5 with XML/Json using Ajax/jQuery Standardised, provide rich functionality using HTML5 HTML Presentation in Browsers HTML Presentation in Browsers All functionality is server side Simple HTML
  42. 42. Tiers vs. Layers Tier implies physical layer Example: Client-server is two-tier system: client on one machine, server on another Layers do not need to run on separate machines Layers can be on the same machine Example: Web system with Web Layer, Domain Layer and Data Source Layer on the same machine, then the database on a separate machine
  43. 43. Classic N-tier Web Architecture HTTP Service HTTP Service HTTP Service HTTP Service Services Services Database Legacy Server Scalability comes by adding more servers
  44. 44. Which of the following statements is not true? A) Versioning is only a challenge with client-service model B) Layers need not be on a separate machines C) Web servers can be used as application servers D) Scalability is achieved by duplicating the system QUIZ
  45. 45. Building Blocks
  46. 46. Building Enterprise Applications Building computer systems is hard As the complexity of the system gets greater, the
 task of building the software gets exponentially harder
  47. 47. Building Enterprise Applications Building computer systems is hard Software Architecture Object Oriented 
 Programming Frameworks Middleware Design Patterns
  48. 48. Object Oriented Programming OO is key to development of systems • Design for reusability, flexibility and performance One of the biggest hurdles for developers • Each component should be simple with simple task • Involves understanding of interaction of parts “OO design is more important than specific technologies, such as J2EE. 
 We should try to avoid letting our technology choices, such as J2EE, constrain our ability to use true OO design” – Rod Johnson “If the design is good, there is no code” – Jónas Þór, Senior Developer, Betware
  49. 49. Software Architecture Shared understanding of system’s design by the expert developers on a project - vision and structure • Highest-level breakdown of a system into its parts • Decisions that are hard to change • Architecture influences design of 
 components, technology, performance 
 and middleware • There are always multiple of options
  50. 50. Object Oriented Programming Design using known ideas • Design patterns are standard solutions to common problems in software design • Systematic approach for problems that reoccur in software development • Patterns have name and definitions - not language dependant History Landmark book from 1995: Design Patterns: Elements of Reusable Object-Oriented Software Gang of Four (GoF)
  51. 51. Middleware Enterprise system are built on middleware • Can cover a broad spectrum of software and generally sits between an application and an operating system • For example, databases, application servers, web servers, messaging systems, transaction monitors • “The plumbing” – the infrastructure Horizontal market • Solves common problems – not specific business requirements • Low-level system
  52. 52. Frameworks Frameworks define the support structure for how to organise and build systems • Can improve productivity • We can use existing frameworks or build our own Frameworks implement common problems • Developers extend and add their business requirements Framework design • Use inheritance, inversion of control, interfaces and helper classes • Implement design patterns
  53. 53. Which of the following statement is not true? A) Design patterns are solutions to common problems B) Object oriented programing is good for general problems C) Frameworks are used to increase productivity D) Middleware can solve business related problems QUIZ
  54. 54. THINK ABOUT THIS Advice is a dangerous gift There are no right answers “Use the advice to prod your thinking, but don’t use it as a replacement for your thinking” – Martin Fowler