Document 15075194

advertisement
Mata kuliah
Tahun
: T0144 – Advanced Topics in Software Engineering
: 2010
Pertemuan 11
Current Issues
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
3
Outline Material
•
Current Platforms
– Rich Internet Applications
– Parallel Computing
– Mobile Platforms
•
•
ORM vs OODBMS
“New” Architectures
– Service Oriented Architecture
– Web Service
4
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 SOAbased 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
References
•
•
•
•
Rich Internet Application
http://en.wikipedia.org/wiki/Rich_Internet_application
Parallel Computing
http://en.wikipedia.org/wiki/Parallel_computing
Service Oriented Architecture
http://en.wikipedia.org/wiki/Service-oriented_architecture
Web Service
http://en.wikipedia.org/wiki/Web_service
16
Download