Megatrends in Information Technology Software Engineering Linkages Len Cayetano Personal Information Engineer at Kyocera 20 Plus Years in Software Engineering Embedded Systems, SOA, Internet, Storage, Corporate Tax Software, Program Management, Engineering Management Double Alumnus, University of Southern California MS Software Engineering, Viterbi School of Engineering MBA International Business, Marshall School of Business Loyola Marymount University, Los Angeles MS Computer Science DePaul University, Chicago BS, Dual Major in Mathematics & Computer Science with Honors October 28, 2013 Megatrends in IT & Software Engineering Linkages-2 USC VITERBI SCHOOL of ENGINEERING AGENDA Megatrends & Driving Forces in Information Technology Technologies to Actualize Megatrends Embedded Systems CSCI 510 Software Engineering Economics October 28, 2013 Linkages to Software Engineering Megatrends in IT & Software Engineering Linkages-3 Essential Objectives 1. Discuss Megatrends that have implications for the future of Software Engineering 2. Review essential technologies which will enable organizations to exploit these trends 3. Develop an understanding of the importance of embedded systems for future products 4. Review relevant Software Engineering theory October 28, 2013 Megatrends in IT & Software Engineering Linkages-4 SECTION 1 MEGATRENDS AND DRIVING FORCES IN IT October 28, 2013 Megatrends in IT & Software Engineering Linkages-5 Gartner’s Strategic Outlook for 2020 2013 2018 2020 Total economic value add for “Internet of Things” will be $1.9 trillion dollars in 2020 There will be up to 30 billion devices connected with unique IP addresses Benefit and impact wide range of industries including healthcare, retail, transportations References: Gartner, 2013. Published by Michael Cooney in Infoworld. See [60] October 28, 2013 Megatrends in IT & Software Engineering Linkages-6 Four Powerful Driving Forces (Gartner) SOCIAL MEDIA MOBILE CLOUD INFORMATION Driving forces will: Continue to drive change and create new opportunities Create high demand for advanced programmable infrastructure Programmable infrastructure will need to execute at web-scale References: Gartner, 2013. Published by Michael Cooney in Infoworld. See [60] October 28, 2013 Megatrends in IT & Software Engineering Linkages-7 Gartner’s 2014 Top 10 Strategic Technology Trends 1. Mobile Device Diversity & Management 2. Mobile Apps and Applications 3. Software-defined Anything (SDx) 4. Smart Machines 5. 3-D Printing 6. The Internet of Everything 7. Hybrid Cloud and IT as Service Broker 8. Cloud/Client Architecture 9. The Era of Personal Cloud 10. Web-scale IT References: Gartner, 2013. Published by Michael Cooney in Infoworld. See [60] October 28, 2013 Megatrends in IT & Software Engineering Linkages-8 2014 Strategic Technology Trend #1 Mobile Device Diversity & Management Growing variety of devices, computing styles, user contexts, and interaction paradigms Doubling and tripling of the size of the mobile workforce Need for enterprise policies on employee-owned hardware usage Bring Your Own Device (BYOD) OK? Companies need to set expectations Balance flexibility with confidentiality and privacy requirements References: Gartner, 2013. Published by Michael Cooney in Infoworld. See [60] October 28, 2013 Megatrends in IT & Software Engineering Linkages-9 2014 Strategic Technology Trend #2 Mobile Apps and Applications Apps will continue to grow faster than applications Apps are smaller, more targeted, while a larger application is more comprehensive Improved JavaScript performance will begin to push HTML5 and browser as a mainstream app development environment Developers should create UI models that include richer voice and video that improve connectivity Developers should look for ways to snap together apps to create larger applications Developers should find ways to leverage intent, inferred from emotion and actions Goal is to motivate changes in end-user behavior Accept that no single tool will be optimal Several will have to be used for development References: Gartner, 2013. Published by Michael Cooney in Infoworld. See [60] October 28, 2013 Megatrends in IT & Software Engineering Linkages-10 2014 Strategic Technology Trend #3 Software-defined Anything (SDx) Software-defined anything (SDx) incorporates various initiatives which share similar visions Very similar to OpenStack, OpenFlow, the Open Compute Project, and OpenRack OpenStack is a cloud computing project aimed at providing an infrastructure as a service (IaaS) It is free and open-source software released under the terms of the Apache License Industry leaders with similar interests participate Examples of SDx include: SDN (Software-defined networking ) SDDC (Software-defined data center ) SDS (Software-defined storage) SDI (Software-defined Infrastructure) References: Gartner, 2013. Published by Michael Cooney in Infoworld. See [60] October 28, 2013 Megatrends in IT & Software Engineering Linkages-11 2014 Strategic Technology Trend #3 Software-defined Anything (SDx) Continued Evolution of SDx technology silos and consortiums will: Create emerging standards and bridging capabilities to benefit portfolios Challenge individual technology suppliers to demonstrate their commitment to true interoperability standards within their specific domains Issues & Concerns Vendors’ interpretations of SDx definitions may be anything but open Vendors who dominate a sector may reluctantly want to abide by standards that have the potential to: Lower margins and open broader competitive opportunities Benefit consumer because of simplicity, cost reduction and consolidation efficiency References: Gartner, 2013. Published by Michael Cooney in Infoworld. See [60] October 28, 2013 Megatrends in IT & Software Engineering Linkages-12 2014 Strategic Technology Trend #4 Smart Machines Through 2020, the smart machine era will blossom There will be a proliferation of: Contextually aware, intelligent personal assistants, smart advisers (e.g. IBM Watson) Advanced global industrial systems Public availability of early examples of autonomous vehicles The smart machine era will be the most disruptive in the history of IT New systems are now finally emerging that will fulfill some of the earliest visions for what information technologies might or could accomplish Machines will do what we thought only people could do and machines could not! References: Gartner, 2013. Published by Michael Cooney in Infoworld. See [60] October 28, 2013 Megatrends in IT & Software Engineering Linkages-13 2014 Strategic Technology Trend #4 Smart Machines Highly recommend book by John E. Kelly and Steve Hamm Thesis is that era of cognitive systems is here! Machines will do more than calculations They will sense, learn, reason and interact naturally with people in powerful ways Will create a new culture of innovation References: Gartner, 2013. Published by Michael Cooney in Infoworld. See [60] October 28, 2013 Megatrends in IT & Software Engineering Linkages-14 2014 Strategic Technology Trend #5 3-D Printing Very expensive “additive manufacturing” devices have been around for 20 years Worldwide shipments of 3D printers are expected to grow 75 percent in 2014 Doubling of unit shipments expected in 2015 Market for devices ranging from $50,000 to $500, and with commensurate material and build capabilities, is nascent yet growing rapidly The consumer market hype has made organizations aware of the following: 3D printing is a real, viable and cost-effective means to reduce costs Potential for improved designs Streamlined prototyping References: Gartner, 2013. Published by Michael Cooney in Infoworld. See [60] October 28, 2013 Megatrends in IT & Software Engineering Linkages-15 2014 Strategic Technology Trend #6 The Internet of Everything The Internet is expanding beyond PCs and mobile devices Internet is expanding into: Enterprise assets such as field equipment Consumer items such as cars and televisions Issues for most enterprises and vendors Most enterprises and technology vendors have yet to explore the possibilities of an expanded Internet Most are not operationally or organizationally ready Imagine digitizing the most important products, services and assets! References: Gartner, 2013. Published by Michael Cooney in Infoworld. See [60] October 28, 2013 Megatrends in IT & Software Engineering Linkages-16 2014 Strategic Technology Trend #6 The Internet of Everything Your Body Your Home Your City Industry Environment References: Gartner, 2013. Published by Michael Cooney in Infoworld. See [60] Also see http://postscapes.com/internet-of-things-examples/ October 28, 2013 Megatrends in IT & Software Engineering Linkages-17 2014 Strategic Technology Trend #7 Hybrid Cloud and IT as Service Broker Bringing together personal clouds and external private cloud services is an imperative Enterprises should design private cloud services with a hybrid future in mind Hybrid cloud services can be composed in many ways Could vary from relatively static to very dynamic Managing this composition will often be the responsibility of something filling the role of cloud service broker (CSB) Need to make sure future integration/interoperability is possible CSB should handle aggregation, integration and customization of services Enterprises that are expanding into hybrid cloud computing from private cloud services are taking on the CSB role References: Gartner, 2013. Published by Michael Cooney in Infoworld. See [60] October 28, 2013 Megatrends in IT & Software Engineering Linkages-18 2014 Strategic Technology Trend #8 Cloud/Client Architecture Cloud/client computing models are shifting Essentials of the cloud/client architecture The client is a rich application running on an Internet-connected device The server is a set of application services hosted in an increasingly elastically scalable cloud computing platform The cloud is the control point and system of record Applications can span multiple client devices The client environment may be a native application or browser-based Increasingly complex demands of mobile users will drive apps to demand increasing amounts of server-side computing and storage capacity Need to exploit the intelligence and storage of the client device: After all there are robust capabilities in many mobile devices Need to manage issue of increased demand on networks Cost of networks and the need to manage bandwidth use will create incentives to: Minimize the cloud application computing and storage footprint Exploit the intelligence and storage of the client device References: Gartner, 2013. Published by Michael Cooney in Infoworld. See [60] October 28, 2013 Megatrends in IT & Software Engineering Linkages-19 2014 Strategic Technology Trend #9 The Era of Personal Cloud The Personal Cloud era will mark a power shift away from devices toward services In this new world The specifics of devices will become less important for the organization to worry about However, devices will still be necessary Users will use a collection of devices, with the PC remaining one of many options No one device will be the primary hub Rather, the personal cloud will take on that role Access to the cloud and the content stored or shared from the cloud will be: Managed and secured, rather than solely focusing on the device itself References: Gartner, 2013. Published by Michael Cooney in Infoworld. See [60] October 28, 2013 Megatrends in IT & Software Engineering Linkages-20 2014 Strategic Technology Trend #10 Web-scale IT Web-scale IT is a pattern of global-class computing that delivers the capabilities of large cloud service providers within an enterprise IT setting Done by rethinking positions across several dimensions Large cloud services providers such as Amazon, Google, Facebook, etc., are re-inventing the way IT in which IT services can be delivered (Need to imitate) Their capabilities go beyond scale in terms of sheer size to also include scale as it pertains to speed and agility If enterprises want to keep pace, then they need to emulate the architectures, processes and practices of these exemplary cloud providers Gartner calls the combination of all of these elements Web-scale IT References: Gartner, 2013. Published by Michael Cooney in Infoworld. See [60] October 28, 2013 Megatrends in IT & Software Engineering Linkages-21 2014 Strategic Technology Trend #10 Web-scale IT (Continued) Web-scale IT looks to change the IT value chain in a systemic fashion Data centers are designed with an industrial engineering perspective This goes beyond re-designing facilities to be more energy efficient Perspective that looks for every opportunity to reduce cost and waste Need to also include in-house design of key hardware components such as servers, storage and networks Web-oriented architectures allows developers to build very flexible and resilient systems that recover from failure more quickly References: Gartner, 2013. Published by Michael Cooney in Infoworld. See [60] October 28, 2013 Megatrends in IT & Software Engineering Linkages-22 “ Always On” or “Connected” Society Term created by Gartner to refer to the prediction that 75% of EU and US citizens will have the option of immediate access to eservices for over 80% of their non-working time by 2007 “Always On” society will evolve as a consequence of widespread, easy access to sufficient wireless network bandwidth Evolution will also result from availability of mobile devices capable of exploiting this bandwidth at affordable network fees Trend towards mobility will become an integral part of society A mobile device will become a personal companion Personal mobile devices will increase in processing power, networking capabilities and battery capacity Personal devices will evolve to advanced personal platforms Will reinforce tendency to move from the following work scenarios: “fixed time” to “anytime” “fixed place” to “anywhere” References: Gerhard Wiehler, 2004 , See [54, 55] October 28, 2013 Megatrends in IT & Software Engineering Linkages-23 SECTION 2 TECHNOLOGIES TO ACTUALIZE MEGATRENDS AND DRIVING FORCES October 28, 2013 Megatrends in IT & Software Engineering Linkages-24 Technologies Making Products Based on Megatrends Possible Gartner participates in the rich marketplace of ideas Attempts to predict what the future of IT will look like Leverage work of other technical thought leaders Gerhard Wiehler and others to discuss “HOW?” Goal is to discuss concrete technological mechanisms through which Gartner’s predictions can be actualized October 28, 2013 Megatrends in IT & Software Engineering Linkages-25 Comparison of 2 Building Blocks J2EE Environment & .NET Framework J2EE Environment Component Based Application Swing Enterprise Java Beans Web Service Java Server Pages .NET Framework Other Application JDBC More Standard Java Packages Component Based Application Windows Forms Web Service Enterprise Services ASP.NET Other Application ADO.NET More .NET Framework Class Library Java Virtual Machine (VM) Common Language Runtime Windows, Unix, Linux, Others Windows References: Gerhard Wiehler, 2004 , See [54, 55] October 28, 2013 Megatrends in IT & Software Engineering Linkages-26 Mobile Client Architectures for Java and .NET Environments J2ME .NET Compact Framework Applications MID Profile PDA Profile Game Profile Applications Other Profile CLDC Connected Limited Device Configurations CDC Connected Device Configurations KVM CVM Symbian, Windows Mobile, Linux, Palm OS, Blackberry, IOS,etc Web Services Web Forms Data Access and XML Base Class Library Common Language Runtime Windows CE .NET (Windows Mobile) References: Gerhard Wiehler, 2004 , See [54, 55] October 28, 2013 Megatrends in IT & Software Engineering Linkages-27 Reduction from Large to Smaller Mobile Environment: Case 1 (Java) J2EE Environment Component Based Application Swing Enterprise Java Beans Web Service J2ME Applications Other Application MID Profile Java Server Pages JDBC More PDA Profile Game Profile Other Profile CLDC Connected Limited Device Configurations CDC Connected Device Configurations KVM CVM Standard Java Packages Java Virtual Machine (VM) Windows, Unix, Linux, Others Symbian,Windows Mobile,Linux, Palm OS, Blackberry, IOS,etc. References: Gerhard Wiehler, 2004 , See [54, 55] October 28, 2013 Megatrends in IT & Software Engineering Linkages-28 Reduction from Large to Smaller Mobile Environment: Case 2 (.NET) .NET Framework Component Based Application Web Service .NET Compact Framework Applications Other Application Web Services Windows Enterprise ASP.NET ADO.NET More Forms Services .NET Framework Class Library Web Forms Data Access and XML Base Class Library Common Language Runtime Common Language Runtime Windows Windows CE .NET (Windows Mobile) References: Gerhard Wiehler, 2004 , See [54, 55] October 28, 2013 Megatrends in IT & Software Engineering Linkages-29 Summary of Reduction from Large to Smaller Mobile Environment References: Gerhard Wiehler, 2004 , See [54, 55] October 28, 2013 Megatrends in IT & Software Engineering Linkages-30 Example of Mobile Enterprise Portal Devices Markup Protocol Network Gateways Enterprise Portal ●HTML Email ● XHTML Basic ● WAP ● WML ● HTTP ● GPRS ● SMTP ● 3G/ UMTS ● Tiny HTML ● GSM ● WLAN ● cHTML (I-Mode) Service/ Application ● SMS ● VoiceXML ● Voice ● WAPGateway ● Web Server ● Voice Server Web Access Mobile Enterprise Portal Mobile Access Corporate Directory Standard Application (e.g. ERP) Field Service Application Departmental Service LocationBased Services References: Gerhard Wiehler, 2004 , See [54, 55] October 28, 2013 References: Gerhard Wiehler, 2004 , See [54, 55] Megatrends in IT & Software Engineering Linkages-31 Wireless Application Protocols (WAP) Architecture WAP Wireless Application Protocols Internet Protocols WDP Wireless Datagram Protocol TCP/IP WTLS Wireless Transport Layer Security HTTP WTP Wireless Transaction Protocol TLS/SSL WSP Wireless Session Protocol WML Wireless Markup Language References: Gerhard Wiehler, 2004 , See [54, 55] October 28, 2013 Megatrends in IT & Software Engineering Linkages-32 SECTION 3 EMBEDDED SYSTEMS October 28, 2013 Megatrends in IT & Software Engineering Linkages-33 Driving Forces for Continued Growth in Embedded Systems Comprise biggest share on the integrated circuit market Become more powerful every year with evolution of microprocessor technology Becoming more sophisticated, blurring frontier between computers & appliances Growing similarity between embedded and desktop apps Similarity is enforcing need to connect devices through TCP/IP networks Increasing trends of bigger integration between different microprocessed appliances Moving toward an “Internet of Everything” References: See [54, 55, 60] October 28, 2013 Megatrends in IT & Software Engineering Linkages-34 Examples of Embedded Systems Source: https://www.google.com/search?q=embedded+systems+examples&hl=en&qscrl=1&rlz=1T4NDKB_enUS538US538&t bm=isch&tbo=u&source=univ&sa=X&ei=k2hmUqiPBOWTiAKNt4CoCw&sqi=2&ved=0CDwQsAQ&biw=1093&bih=490 October 28, 2013 Megatrends in IT & Software Engineering Linkages-35 Overview of an Embedded System All use form of non-volatile RAM Flash memory, EPROM, ROM All use some form of RAM Most have communications interfaces to a development host Several embedded platforms available to host Web Services C PU ROM N on -volatile M em ory C lock I/O RAM A Typical Embedded System Source: See Reference [54], Page 3. e.g. Netburner, RabbitCore, SHIP Several development toolkits J2ME (Java Platform, Micro Edition) ETTK (Effort among multiple IBM labs) eSOAP (Light implementation of SOAP) gSOAP (Cross-platform open source) References: See [ 54] October 28, 2013 SHIP Board Source: See Reference [54], Page 3. Megatrends in IT & Software Engineering Linkages-36 SECTION 3B AN EXAMPLE OF SOA IN EMBEDDED SYSTEMS October 28, 2013 Megatrends in IT & Software Engineering Linkages-37 What is SOA? First, Understand “Tight Coupling” Data and functionality typically reside on more than one, often disparate systems Applications need to be able to “talk to each other” Status quo: Proprietary or custom communication interfaces between applications Source: H. Taylor, “Service-Oriented Architecture (SOA) 101 ‘What’s Hype, What’s Real?’“, Juniper Networks, Inc.,2007. October 28, 2013 Megatrends in IT & Software Engineering Linkages-38 Challenges with Tight Coupling It is costly to maintain Slow and costly to change Consequence: Cost and complexity of managing and changing a tightly coupled architecture makes business agility difficult IT can’t keep up with business needs, but it’s not their fault Does not support REUSE! Reuse is a challenge industry wanted to solve for many years! Header files, inheritance and polymorphism at the object level, frameworks CORBA (Common Object Request Broker Architecture) Microsoft COM (Component Object Model) EAI (Enterprise Application Integration ) Web Services Evolution of reuse solutions reflects industry’s concerns CORBA and COM will be explored in a little more detail Source: H. Taylor, “Service-Oriented Architecture (SOA) 101 ‘What’s Hype, What’s Real?’“, Juniper Networks, Inc.,2007. October 28, 2013 Megatrends in IT & Software Engineering Linkages-39 CORBA: Technology to Facilitate Reuse Tier1 belongs to: Traditional Web browsers Web-centric applications Java applets, Java beans Tier 2 runs on any server that can support HTTP and CORBA clients CORBA objects, like EJBs, encapsulate business logic The 3-Tier CORBA/Java Object Web. Source: Client/Server Programming with JAVA and CORBA Second Edition by R. Orfali and D. Harkey, p. 45. October 28, 2013 Tier 3 consists of almost anything a CORBA object can access Megatrends in IT & Software Engineering Linkages-40 COM: Technology to Facilitate Reuse Brief Overview of COM Microsoft COM (Component Object Model) enables software components to communicate COM is used by developers to create re-usable software components, link components together to build applications, and take advantage of Windows services COM objects can be created with a variety of programming languages including object-oriented languages such as C++ The family of COM technologies includes COM+, Distributed COM (DCOM) and ActiveX® Controls. The .NET Framework provides bi-directional interoperability with COM Enables COM-based applications to use .NET components and .NET applications to use COM components Reasons CORBA, COM, EAI and others did not work Lack of open standards Proprietary components Now examine SOA as a technology Source: http://www.microsoft.com/com October 28, 2013 Megatrends in IT & Software Engineering Linkages-41 SOA: The Ideal of Open Interoperability (Loose Coupling) SOA – A Definition An IT architecture composed of software that has been exposed as “Services” – i.e. invoked on demand using a standard protocol. “Web Services” – software available as a “service” using Internet protocols. One software application talking to another using a standards-based (i.e. nonproprietary) language over a standards-based communication protocol. An IT architecture that enables “loose coupling” of applications Source: H. Taylor, “Service-Oriented Architecture (SOA) 101 ‘What’s Hype, What’s Real?’“, Juniper Networks, Inc.,2007. October 28, 2013 Megatrends in IT & Software Engineering Linkages-42 Core SOA Definitions XML – Extensible Markup Language SOAP – Simple Object Access Protocol WSDL – Web Services Description Language UDDI - Universal Description, Discovery and Integration ESB – Enterprise Service Bus Key Concepts Network Transparency Virtualized endpoint Self-describing software Universally discoverable software Universally understood software Machine to machine interaction (World Wide Web Consortium)W3C (www.w3.org) Organization for the Advancement of Structured Information Standards(OASIS) (www.oasis-open.org) Standards Organizations Source: H. Taylor, “Service-Oriented Architecture (SOA) 101 ‘What’s Hype, What’s Real?’“, Juniper Networks, Inc.,2007. October 28, 2013 Megatrends in IT & Software Engineering Linkages-43 SOA Usage & Supporting Platforms SOA Usage B2B Enterprise Application Integration (EAI) Application to Application Government Embedded Systems SaaS (Software as a Service) Cloud Computing (Computing/Infrastructure as a Service) Major Players in SOA Space IBM: WebSphere SOA Product Suite Oracle: WebLogic Oracle: Fusion Middleware Microsoft: .NET SAP: NetWeaver Source: H. Taylor, “Service-Oriented Architecture (SOA) 101 ‘What’s Hype, What’s Real?’“, Juniper Networks, Inc.,2007. October 28, 2013 Megatrends in IT & Software Engineering Linkages-44 What Makes Web Services Appealing? CORBA JAVA RMI ONC(SUN) RPC WEB SERVICES 1. Data Encoding Common Data Representation (CDR) Serialized Java/CDR Extended Data Representation (XDR) XML (WS-I docliteral, SOAP Encoding) 2. Message Format IIOP (GIOP) RMI Protocol/IIOP RPC RMS SOAP 3. Transport Protocol TCP TCP UDP TCP HTTP 4. Description Language CORBA IDL Java Interface/Class RPC IDL WSDL 5. Discovery Mechanism COS Naming RMI Registry Undefined UDDI 6. Invocation Method CORBA RMI Java RMI (method call) RPC Undefined Source: See [ 56], Page 4. October 28, 2013 Megatrends in IT & Software Engineering Linkages-45 Example: Business to Business, External Provider Two enterprises: A & B 4 Web Services 3 WS from external providers 4 Scenarios Scenario 1 (S1): S2 S3 S4 Enterprise B’s Purchasing accesses Enterprise A’s Inventory Web Service Scenario 2 (S2): S1 Enterprise A’s Accounting accesses Payment Web Service Scenario 3 (S3): Both enterprises’ security access the same authentication Web service Scenario 4 (S4): Enterprise B’s Production accesses Logistics Web Service Source: Mobility, Security and Web Services: Technologies and Service-Oriented Architectures for a new Era of IT Solutions by Gerhard Wiehler, p. 101. October 28, 2013 Megatrends in IT & Software Engineering Linkages-46 Issues/Constraints in Implementing Web Services in Embedded Devices Developers typically use an embedded Web Server to remotely access services running on their embedded device Embedded Web Server should also be extended to serve as a container for Web Services Container should be able to load Web Services implemented in C and C++ C/C++ most common language for embedded systems Container should be able to load WS implemented in embedded Java Source: See [ 56], Page 4. October 28, 2013 Megatrends in IT & Software Engineering Linkages-47 Issues/Constraints in Implementing Web Services in Embedded Device Web Server Footprint Web Server that serves as container for WS must be carefully designed/modified to make optimal use of memory A popular Web server like Apache would, in most cases, be too large Data Marshaling Encoding and decoding routines used to marshal or unmarshal XML encoded data within SOAP messages must be carefully optimized Need to strike the correct balance of space and time utilization Need to avoid consuming too much ROM, RAM, or processor time Optimized C language implementation of the marshaling-unmarshaling library provides a good solution Reference: See [ 56]. October 28, 2013 Megatrends in IT & Software Engineering Linkages-48 Issues/Constraints in Implementing Web Services in Embedded Device Implementation Language Most solutions for containers and services depend on Java A native (compiled) language implementation doesn’t consume additional ROM memory Can facilitate the deployment of Java clients or services Modularity Many solutions try to create modular designs with a clean separation of interfaces Interdependencies between modules frequently exist, increasing the code footprint An embedded implementation must employ strict layering to eliminate penalties for capabilities. E.g. SSL, UDDI may not be required Reference: See [ 56]. October 28, 2013 Megatrends in IT & Software Engineering Linkages-49 SECTION 3C DEVICE TO BUSINESS EXAMPLE October 28, 2013 Megatrends in IT & Software Engineering Linkages-50 Device to Business Examples Embedded systems are typically located in environments where: It is inconvenient to implement application provisioning Difficult to obtain diagnostic information & other operational data Web services make these activities manageable remotely plus over the Web Ex. 1: An automotive telematics device could: Wirelessly connect to a telematics service provider and Fetch route updates for turn-by-turn navigation Fleet tracking Vehicle diagnostics Deploy HVAC (Heating, Ventilating, Air Conditioning) control devices in hundreds of stores Securely control all those devices over the Internet, from a central location Ex 2: Courier companies could perform specialized tasks Ex. 3: A retail chain could: References: See [ 56] October 28, 2013 Megatrends in IT & Software Engineering Linkages-51 Requirements for Device-to-Business Integration Infrastructure Web Services Support Common denominator for all participating devices in SOA E.g. on shop floor, thousands of events are generated during normal operation Event Driven Architecture (EDA) Service Lifecycle Management Need to administrate services during entire lifecycle Start/stop services Configuration & parameterization of running services Device-level events can be actively integrated & evaluated during execution of business process Business Process Modeling Intermittent Connected Assets Oftentimes devices connect only occasionally to the back-end system or suffer sudden disconnections Business Process Monitoring Deals with proactive and process-oriented monitoring of company’s core business processes Reference: See [ 55]. October 28, 2013 Megatrends in IT & Software Engineering Linkages-52 Requirements for Device-to-Business Integration Infrastructure Alerting Important especially for mission-critical devices Need to filter information from devices into back-end services E.g. Maintenance, Repair and Overhaul (MRO) OASIS standards Devices Profile for Web Services (DPWS) Defines a minimal set of implementation constraints to enable secure Web Service messaging, discovery, description, and eventing on resource-constrained devices B2MML (Business to Manufacturing Markup Language) Multi-faceted Enterprise Services Standardized Communication & Information Exchange Access to Device Status Rich interface to device status is necessary Options that can configure or even allow code to be downloaded to the device are required Reference: See [ 55]. October 28, 2013 Megatrends in IT & Software Engineering Linkages-53 Sample Architecture for Device to Business Goal is to integrate device-level services Integrate with enterprise software Enterprise software uses Web Services technology 3 Layers 1. Device Layer 2. Composition Layer 3. Middleware Layer Reference: See [ 55]. October 28, 2013 Megatrends in IT & Software Engineering Linkages-54 Architecture for Device to Business Reference: See [ 55]. October 28, 2013 Megatrends in IT & Software Engineering Linkages-55 Sample Architecture:Device Layer Devices of manufacturing & process automation shop floor are represented in the device layer Smart networked devices expose functionality directly as Web Services Use DPWS, DPWS-enabled controllers Could use legacy system connectors Messages may be exchanged via peer-to-peer network Landscape of devices highly heterogeneous Reference: See [ 55]. October 28, 2013 Megatrends in IT & Software Engineering Linkages-56 Sample Architecture:Composition Layer Intermediate systems that provide compound services Compound services by combining capabilities of smart devices Compound systems are flexible & agile Also provides connection of legacy devices that do not provide Web Services support Reference: See [ 55]. October 28, 2013 Megatrends in IT & Software Engineering Linkages-57 Sample Architecture: Middleware Layer Connects device layer and composite layer with the application layer Provides Device Abstraction Connects devices with enterprise applications in transparent way Provides facilities for asynchronous and synchronous communications Propagation of events and connecting to different device protocols Provides legacy support to support legacy devices Provides System Management Service Lifecycle management Monitoring of device status Service discovery Reference: See [ 55]. October 28, 2013 Megatrends in IT & Software Engineering Linkages-58 Sample Architecture:Application Layer Contains applications traditionally connected to lower layers Also apps that do not connect to lower layers E.g. Supervision of shop floor, ERP E.g. Business applications such as ERP E.g. Operational Management Enterprise services available to support enterprise applications Business Process Engine processes business processes Management Interfaces provides supervision of shop floor Reference: See [ 55]. October 28, 2013 Megatrends in IT & Software Engineering Linkages-59 SECTION 4 THOUGHTS ON SOFTWARE ENGINEERING ECONOMICS October 28, 2013 Megatrends in IT & Software Engineering Linkages-60 Operational Benefits of Reuse In resource-limited situations, every organization must decide how to allocate its limited resources to produce a certain set of outputs [11] Production-Possibility Frontier Curve (W.C. Lim) Shows the organization’s menu of choices for quality and productivity A concave curve viewed from the origin Assumes that the resources of the organization are fully and efficiently employed Tradeoff between quality and productivity. [11] Source: W.C. Lim, Managing Software Reuse, October 28, 2013 Prentice Hall, 1998, p. 108 Megatrends in IT & Software Engineering Linkages-61 Operational Benefits of Reuse With reuse, note shift of the production-possibility frontier to the right Illustrates that with reuse a higher level of quality can be achieved with the same level of productivity Similarly, a higher level of productivity can be achieved with the same level of quality Simultaneous increase in quality and productivity Reuse allows increased quality and /or productivity levels. Source: W.C. Lim, Managing Software Reuse, Prentice Hall, 1998, p. 109 October 28, 2013 Megatrends in IT & Software Engineering Linkages-62 SECTION 5 SUMMARY October 28, 2013 Megatrends in IT & Software Engineering Linkages-63 Final Thoughts 1. There are significant trends and driving forces that will affect the future of engineering and indeed society 2. Smart Machines may be the next “disruptive” technology although there are competing and complementary driving forces 3. Software engineering will continue to play an increasing role in the advancement of technology 4. Mobility is a trend that will impact the continued proliferation of embedded devices 5. We have to be concerned about privacy & security 6. SOA/Web Services will continue to play a significant role October 28, 2013 Megatrends in IT & Software Engineering Linkages-64 REFERENCES October 28, 2013 Megatrends in IT & Software Engineering Linkages-65 References 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. B.W. Boehm and C. Gacek, “Composing Components: How Does One Detect Potential Architectural Mismatches?,” USC Center for Software Engineering, Los Angeles, CA, 1999. B.W. Boehm and W.L. Scherlis, “Megaprogramming,” Proceedings of the DARPA Software technology Conference, April 1992 (available via USC Center for Software Engineering, Los Angeles, CA, 90089-0781). B.W. Boehm, Software Engineering Economics, Prentice Hall, Englewood Cliffs, N.J., 1981. B.W. Boehm, C. Abts, A.W. Brown, S. Chulani, B.K. Clark, E. Horowitz, R. Madachy, D. Reifer, and B. Steece, Software Cost Estimation with COCOMO II, Prentice Hall, Upper Saddle River, N.J., 2000. Carnegie Mellon University, Software Engineering Institute (M.C. Pauk, C.V. Weber, B. Curtis, and M.B. Chrissis). The Capability Maturity Model: Guidelines for Improving the Software Process, Addison-Wesley, 1999. F. DeRemer and H.H. Kron. “Programming –in-the-large versus programming-in-the-small,” IEEE Transactions on Software Engineering, SE-2(2), June 1976, pp. 80-86. D. Garlan, R. Allen, and J. Ockerbloom. “Architectural Mismatch: Why Reuse Is So Hard,” Software, IEEE Computer Society, November 1995, pp. 17-26. E.M. Hall, Managing Risk: Methods for Software Systems Development, Addison-Wesley, 1998. W.S. Humphrey, Managing the Software Process, Addison-Wesley, 1989. I.M. Jacobson and P. Jonsson, Software Reuse: Architecture, Process, and Organization for Business Success, AddisonWesley, 1997. W.C. Lim, Managing Software Reuse, Prentice Hall, 1998 S. Vinoski, “CORBA: Integrating Diverse Applications Within Distributed Heterogeneous Environments,” IEEE Transactions on Software Engineering, 1996. D. J. Reifer, Making the Software Business Case, Addison-Wesley, Upper Saddle River, N.J., 2000. J.S. Poulin, Measuring Software Reuse: Principles, Practices, and Economic Models, Addison-Wesley, 1997. D.J. Reifer, Practical Software Reuse, John Wiley & Sons, 1997. C.K. Prahalad and G. Hatmel “The Core Competence of the Corporation,” Harvard Business Review, May-June, 1990. B.W. Boehm, “Software Risk Management: Principles and Practices,” IEEE Transactions on Software Engineering, January 1991, pp. 32-41. M. Shaw and D. Garlan, Software Architecture: Perspectives On An Emerging Discipline, Prentice Hall, Upper Saddle River, N.J., 1996. C.J. Date, An Introduction to Database Systems Volume II, Addison-Wesley, 1983. R.N. Taylor, N. Medvidovic, K.M. Anderson, E. J. Whitehead Jr., J.E. Robbins, K.A. Nies, P. Oreizy, and D. L. Dubrow, “A Component-and Message-Based Architectural Style for GUI Software.” (Not published in any paper) D. E. Perry, “Generic Architecture Descriptions for Product Lines,” Bell Laboratories, Murray Hill, N.J. (Not published in any paper) October 28, 2013 Megatrends in IT & Software Engineering Linkages-66 References 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. R. T. Fielding, “Software Architectural Styles for Network-based Applications,” University of California, Irvine, July 15, 1999. B.W. Boehm and T.A. Standish, “Software Technology in the 1990’s: using an evolutionary paradigm,” Computer, vol. 16, pp. 30-7, 1983. “Failed technology projects(The Standish Group Report),” in Investor’s Business Daily. Los Angeles, Jan. 1995, pp. A8. B. Bongard, B. Gronquist, and D. Ribot, "Impact of Reuse on Organizations," Cap Gemini Innovation, Esprit project REBOOT, Grenoble, France, Sept. 4, 1992. N. Buxton and R. Malcolm, "Software technology transfer," Software Engineering journal, vol. 6, no.1, pp. 17-23, Jan., 1991. G. Caldiera, "Domain Factory and Software Reusability," Software Engineering Symposium: New Frontiers for Software Maintenance, May, 1991. T. Durek, "Strategies and Tactics for Software Reuse Tutorial," presented at Improving the Software Process and Competitive Position via Software Reuse and Reengineering, Alexandria, V A, 1991. R. Holibaugh, s. Cohen, K. Kang, and S. Peterson, "Reuse: where to begin and why," Proceedings. TRI-Ada '89, pp. 266-77, Oct. 23-26,1989. R. Joos, "Software Reuse in an Industrial Setting," 4th Annual Workshop on Software Reuse, Nov.18-22, 1991. D. Parkhill, "Object-oriented technology transfer: techniques and guidelines for a smooth transition," Object Magazine, pp. 57-59, May/June, 1992. R. Prieto-Diaz, "Making software reuse work: an implementation model," SIGSOFT Software Engineering Notes, vol. 16, no.3, pp. 61-8, July, 1991. "Reuse adoption guidebook," Software Productivity Consortium, Hemdon, VA, SPC-92051-CMC, Version 01.00.03, Nov., 1992. "Software Reuse Guidelines," U.S. Army Information Systems Engineering Command (USAISE), ASQB-GI-90-015, Apr ., 1990. B. Whittle, W. Lam, and T. Kelly, “ A pragmatic approach to reuse introduction in an industrial setting," Systematic Reuse: Issues in Initiating and Improving a Reuse Program. Proceedings of the International Workshop on Systematic Reuse, pp. 104-15, 1996. T. J. Biggerstaff, " An Assessment and Analysis of Software Reuse " in Advances in Computers, vol. 34, M. C. Yovits, Ed., New York, N. Y .: Academic Press, 1992 T. Davis, "Adopting a policy of reuse," IEEE Spectrum, vol. 31, pp. 44-8, June 1994. W. B. Frakes and C. J. Fox, "Sixteen questions about software reuse," Communications of the ACM, vol. 38, pp. 75-87, 112, June 1995. A. J. Incorvaia, A. M. Davis, and R. E. Fairley, "Case studies in software reuse," presented at Fourteenth Annual International Computer Software and Applications Conference (Cat. No.90CH2923-1 ), 1990. R. M. Sonnemann, "Exploratory study of software reuse success," Ph.D. dissertation, Dep. Engineering, George Mason University, Fairfax, VA, 1996. E.M. Rogers, Diffusion of Innovations, Simon & Schuster, 1995. October 28, 2013 Megatrends in IT & Software Engineering Linkages-67 References 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. B.W. Boehm, Competing on Schedule, Cost, and Quality : The Role of Software Models, USC Center for Software Engineering, August, 2001. C.J. Date, An Introduction to Database Systems Volume II, Addison-Wesley, 1983. A. S. Tanenbaum, Distributed Operating Systems, Prentice Hall, 1995. T. B. Bollinger and S. L. Pfleeger, "The Economics of Software Reuse," Contel Technology Center, Chantilly, VA, Tech. Report CTC-TR-89-014, Dec. 13, 1989 J. E. Gaffney and T. A. Durek, "Software Reuse-Key to Enhanced Productivity: Some Quantitative Models,” Software Productivity Consortium, Herndon, V A, Tech. Report SPC- TR-88-015, Apr., 1988. E. Guerrieri, L. A. Lashway, and T. B. Ruegsegger, "An Acquisition Strategy for Populating a Software Reuse Library," National Conference on Software Reusability, July 19-20, 1989. W. C. Lim, “A Cost-Justification Model for Software Reuse," 5th Annual Work- this shop for Institutionalizing Software Reuse, Oct. 26-29, 1992. R. A. Malan and K. Wentzel, "Economics of Reuse Revisited," Hewlett Packard Laboratories, Palo Alto, CA, Technical Report, HPL-93-31, Apr., 1993. J. S. Poulin and J. M. Caruso, "A reuse metrics and return on investment model," Proceedings Advances in Software Reuse. Selected Papers from the Second International Workshop on Software Reusability (Cat. No. 93THO495- 2), pp. 152-66, Mar. 24-26, 1993. B. Bloom, Deploying and Managing Microsoft .NET Web Farms, Sams Publishing, 2001. H. Taylor, “Service-Oriented Architecture (SOA) 101 ‘What’s Hype, What’s Real?’“, Juniper Networks, Inc.,2007. Wiehler, Gerard. Mobility, Security and Web Services: Technologies and Service-Oriented Architectures for a new Era of IT Solutions. Publicis Corporate Publishing, 2004. Pulier, Eric and Hugh Taylor. Understanding Enterprise SOA. Manning Publications Co., 2006. G. B. Machado, F. Siqueira, R. Mittmann, C. A. Vieira e Vieira. “Embedded Systems Integration Using Web Services∗,” Proceedings of the International Conference on Networking, International Conference on Systems and International Conference on Mobile Communications and Learning Technologies (ICNICONSMCL’06),0-7695-2552-0/06,IEEE Computer Society, 2006. S. Karnouskos, O. Baecker, L. M. S. de Souza, and P. Spie. “Integration of SOA-ready Networked Embedded Devices in Enterprise Systems via a Cross-Layered Web Service Infrastructure,” 12th IEEE Conference on Emerging Technologies and Factory Automation, September 25-28, 2007, Patras, Greece. S. Furr. “Implementing Web Services in Embedded Systems,” Embedded Systems Conference Boston Class #206, QNX Software Systems, 2004. K.C. Thramboulidis, G. Doukas, G. Koumoustos. “An SOA-Based Embedded Systems Development Environment for Industrial Automation,” EURASIP Journal on Embedded Systems, Volume 2008, Article ID 312671. J. Canosa, “Embedded System Design,” Embedded.com, 02/01/02. R. Heffner, “Embedded SOA Management Solutions,” Forrester Research, Inc., October 22, 2007. October 28, 2013 Megatrends in IT & Software Engineering Linkages-68 References 60. Cooney, Michael. “Gartner: The Top 10 IT-altering predictions for 2014.” InfoWorld, October 9, 2013. Source URL is http://www.infoworld.com/t/it-management/gartner-the-top-10-it-altering-predictions-2014-228419?page=0,2 October 28, 2013 Megatrends in IT & Software Engineering Linkages-69