Pertemuan 11 Current Issues Mata kuliah: T0144 – Advanced Topics in Software Engineering Tahun: 2010
3 Learning Outcomes Pada akhir pertemuan ini, diharapkan : Mahasiswa dapat menghubungkan issue issue yang menjadi tantangan dalam Software Engineering dengan prinsip prinsip dasar yang sudah dibahas sebelumnya
4 Outline Material Current Platforms –Rich Internet Applications –Parallel Computing –Mobile Platforms ORM vs OODBMS “New” Architectures –Service Oriented Architecture –Web Service
Rich Internet Applications (RIA) Limitations to the primitive web technologies and development tools User demands “rich” contents with more interactivity and multimedia Inadequacy of the basic HTTP/HTML model
Characteristics of RIA Accessibility Ajax, being browser-native, is the only RIA framework that is universally searchable, but Adobe Flash has now made some strides in this direction. Advanced communications with supporting servers can improve the user experience, for example by using optimised network protocols, asynchronous I/O and pre-fetching data (eg Google Maps). Accordingly, reliable broadband connections are often required. Complexity of advanced solutions can make them more difficult to design, develop, deploy and debug than traditional web applications (but typically less so than application software). Consistency of user interface and experience can be controlled across operating systems. Performance monitoring and fault diagnosis can be particularly difficult.
Characteristics of RIA (cont’d) Installation and Maintenance of plug-ins, sandboxes or virtual machines is required (but applications are smaller than their predecessors and updates are typically automated). Installation is typically faster than that of application software but slower than that of native web applications and automation may not be possible. Offline use may be supported by retaining state locally on the client machine, but developments in web standards (prototyped in Google Gears) have also enabled this for native web applications. Security can improve over that of application software (for example through use of sandboxes and automatic updates) but the extensions themselves are subject to vulnerabilities and access possible is often much greater than that of native web applications Performance can improve depending on the application and network characteristics. In particular, applications which can avoid the latency of round-trips to the server by processing locally on the client are often a lot faster. Offloading work to the clients can also improve server performance. Conversely the resource requirements can be prohibitive for small, embedded and mobile devices. Richness by way of features not supported natively by the web browser such as video capture (eg. Adobe Flash).
Emerging RIA Platforms Adobe Flex Microsoft Silverlight JavaFX HTML5 and Canvas
Parallel Computing More and more computers are shipping with multiple cores/CPU. How to take advantage of the power? Parallel computer programs are more difficult to write than sequential ones, because concurrency introduces several new classes of potential software bugs, of which race conditions are the most common. Communication and synchronization between the different subtasks are typically one of the greatest obstacles to getting good parallel program performance.
Mobile Platforms Explosion of “online” mobile devices –Smartphones –Tablets –MIDs –Netbooks Mobile Platforms are inherently different to traditional platforms –Less power –Non-uniform hardware –Novel input methods (touch screen, motion sensors, etc)
ORM vs OODBMS Debate OODBMS is a feasible solution for some applications Still no real solution to the “impedance mismatch” issue ORM is finally getting mainstream –Hibernate –TopLink –Cayenne –JPA Tradeoffs
Service Oriented Architecture SOA-based architecture will provide a loosely-integrated suite of services that can be used within multiple business domains. SOA also generally provides a way for consumers of services, such as web-based applications, to be aware of available SOA- based services. –For example, several disparate departments within a company may develop and deploy SOA services in different implementation languages, and their respective clients use a well understood, well defined interface to access them. Heavily hyped by vendors, but adoption is a bit hampered by the complexity.
SOA Example
SOA Services Data as a Service Software as a Service Platform as a Service Mashups (combined)
Web Services Application Programming Interfaces (API) that can be accessed over a network, such as the Internet, and executed on a remote system hosting the requested services. Refers to clients and servers that communicate over the Hypertext Transfer Protocol (HTTP) protocol used on the web. Such services tend to fall into one of two camps: –“Big Web Services” (traditional) Uses XML via SOAP (Simple Object Access Protocol) Defined using WSDL (Web Services Description Language) –RESTful Web Services Piggybacking on HTTP (PUT/GET/DELETE/POST) Do not require WDSL or XML
16 References Rich Internet Application Parallel Computing Service Oriented Architecture Web Service