- http://kurser.iha.dk/ee-ict-master/tiardi/Slides/ARDI7-POSA2-ComponentConfigurator.pdf
28.7.13
POSA2: Service Access and Configuration Patterns - Component Configurator
27.7.13
POSA2 Notes (1)
Inherent and accidental complexities:
- Inherent complexities
- (POSA2) Inherent complexities arise from fundamental domain challenges, such as dealing with partial failures, distributed deadlock, and end-to-end quality of service(QoS) requirements.
- Accidental complexities
- Accidental complexity - Wikipedia, the free encyclopedia
- Accidental (or incidental) complexity is complexity that arises in computer programs or their development process which is non-essential to the problem to be solved.
- (POSA2) Accidental complexities arise from limitations with software tools and development techniques, such as non-portable programming APIs and poor distributed debuggers.
- Ironically, many accidental complexities stem from deliberate choices made by developers who favor low-level languages and tools that scale up poorly when applied to complex concurrent and networked software.
Topics (POSA2)
- Connection establishment and service initialization.
- Event demultiplexing and event handler dispatching.
- Interprocess comminication (IPC) and network protocols.
- Primary and secondary storage management and caching.
- Static and dynamic component configuration.
- Concurrency and synchronization.
Challenges of Concurrent and Networked Software (POSA2)
- Service Access and Configuration
- Accidental complexities for using low-level operating system APIs. Key design challengs for infrastructure networking or system programs center on minimizing the accidental complexities without sacrificing performance:
- Excessive low-level details.
- Continuous rediscovery and reinvention of incompatible higher-level programming abstractions
- High potential for errors
- Lack of portability
- Steep learning curve
- Inability to scale up to handle increasing complexity.
- A key design challenge at higher-level distributed object computing applications centers on ensuring that clients do not access invalid or unauthorized component service roles.
- Supporting the static and dynamic evolution of services and applications is another key challenge in networked software system.
- Interfaces to and connnectivity between component service roles can change, often at run-time, and new service roles can be implemented and installed into existing components.
- Distributed system performance can be improved by reconfiguring service load to harness the processing power of multiple hosts.
- Another design challenge is to ensure that an entire system need not be shutdown, recompiled, relinked, and restarted simply because a particular service role in a component is reconfigured or its load is redistrubted.
- It is even more challenging to determine how to access services that are configured into a system 'on-demand' and whose implementations are unknown when the system was designed originally.
- Event Handling
- Concurrency
- Synchronization
- Others
26.7.13
NIO/NIO2
- NIO.2特性总结(一)灵活的Path - A2 Studio - 开源中国社区
- NIO.2特性总结(二)增强的通道 NetworkChannel - A2 Studio - 开源中国社区
- NIO.2特性总结(三)AIO - A2 Studio - 开源中国社区
- 5种调优Java NIO和NIO.2的方式 - ImportNew
- Java NIO(1):迟迟登场的NIO - 朱样年华 - 博客园
- Java NIO(2):缓冲区基础 - 朱样年华 - 博客园
- File change notification:
- Watching a Directory for Changes (The Java™ Tutorials > Essential Classes > Basic I/O)
- Java 7 NIO.2 文件系统监视服务在安装测试中的应用
- NIO2 / JDK7 File Reading | Javalobby (09.24.2013)
Inappropriate Intimacy
Just realize that my understanding of Inappropriate Intimacy was incorrect. I thought if many classes were coupled to used a specific class, it is inappropriate intimacy. However, this is not.
Inappropriate Intimacy means one class is implemented upon the details of another class.
In Refactoring the book:
Inappropriate Intimacy means one class is implemented upon the details of another class.
In Refactoring the book:
- Sometimes classes become far too intimate and spend too much time delving in each other's private parts.
- We may not be prudes when it comes to people, but we think our classes should follow strict, puritan rules.
This is how the name came from.
By reading the book again, I find that I really like the language of the book. I used to read the Chinese version, but the English version is better.
- Move method/move field
- Change Bidirectional Association to Unidirectional
- Extract class
- Hide Delegate
- Hide Delegate
- The example in the book of "Hide Delegate" is very intuitive. You can create a delegation method getManager() for Person, instead exposing its Department (private part) for accessing his manager.
- Replace Delegation with Inheritance. (I think this should be: replace inheritance with delegation)
Labels:
Refactor
20.7.13
Off-heap Cache
- caching - Is there a open-source off-heap cache solution for Java? - Stack Overflow
- DirectMemoryProposal - Incubator Wiki
- raffaeleguidi/DirectMemory · GitHub
- New Contributors to HugeCollections | Vanilla #Java
- http://www.kdgregory.com/programming/java/ByteBuffer_JUG_Presentation.pdf
- Byte Buffers and Non-Heap Memory
- jankotek/MapDB · GitHub
- patentability - To what extent is a Java Off-Heap management patent applicable? - Ask Patents
Garbage Collection in Java
- Richard Warburton
- Garbage Collection in Java (1) Overview of GC in Hotspot
- Garbage Collection in Java (2) Parallel Garbage Collectors
- Garbage Collection in Java (3) Concurrent Mark Sweep
- Garbage Collection in Java (4) G1: Garbage First
- Martin Tompson
- Alexey Ragozin
- Alexey Ragozin: Garbage collection
- Understanding GC pauses in JVM, HotSpot's minor GC
- Understanding GC pauses in JVM, HotSpot's CMS collector
- How to tame java GC pauses? Surviving 16GiB heap and greater
- OpenJDK patch cutting down GC pause duration up to 8 times
- HotSpot JVM garbage collection options cheat sheet (v2)
- GC checklist for data grid nodes
- Java GC, HotSpot's CMS and heap fragmentation
- CMS heap fragmentation. Follow up 1
- Java GC, HotSpot's CMS promotion buffers
- Garbage collection in HotSpot JVM
- Secret HotSpot option improving GC pauses on large heaps
19.7.13
16.7.13
13.7.13
8.7.13
4.7.13
2.7.13
Subscribe to:
Posts (Atom)