Written: Marvida
The founder and President of Object-Oriented Concepts, Inc. Open source of ORBACUS (original OMNIBROKER, full compliance with Corba's ORBA) main author. After the acquisition of OOC in 2001 Iona (famous CORBA Technology Company), he was responsible for the vice president of CORBA development ... Michi Henning: Former Corba Scientists in front of Iona. Corba programming classic books ADVANCED CORBA Programming with C author. He participated in a number of OMG specification and was once an OMG C Revision Task Force, Chairman ... Bernard Normier: Join Iona in 1995 and became one of the leader of Orbix 2000. He is the author of the OMG's Persistent State Service, and until February 2003, he is still the chairman of the C and Transaction Service Revision Task Force Board ......... I saw such a Corba "veteran", if you don't explain, you It will surely think this is an article about CORBA. But some wording in the article name and the above introduction ("Before", "I used to", "until ... is still" ...), this article will tell, not CORBA, but a "rebellion to CORBA" "- This" Rebel "is called Zeroc, name is not passed; the company's flagship product is called Internet Communications Engine (Ice); and the company founded this company, it is the above-mentioned big name in the front CORBA camp. army head.
1. Overview According to Zeroc, ICE is "a modern object-oriented middleware that can be used to replace middleware like CORBA or COM / DCOM / COM . While easy learning, it is a harsh technology The required applications provide a powerful network infrastructure. It is too slow in technology like SOAP or XML-RPC, or is not enough scalability or security, it is the ICE starts to shine. " Watching ICE as "Millennium Corba, throws away the burden accumulated in its lifelong, but keeps its full good characteristics, add some characteristics, and design them in a clear and neat method", perhaps More able to grasp the essence of ICE; Even if you know about Corba, understand its strengths and weaknesses, you know how to understand the Ice, you may also give the Frank Pilhofer to give the above reviews (another corba expert !) That called: "Way to Go!". So, what is the advantages of ICE in comparison with CORBA? Before answering this question, let's take a look at what ICE is worthy of boast:
Object-oriented specification language. Easy to use C and Java mappings. More mappings (such as C #) will also be supported in the future version. Very efficient agreement, you can also perform protocol compression. Asynchronous method invocation and asynchronous method Dispatch. Dynamic transmission plugin. TCP / IP and UDP / IP support, as well as SSL-based security. ICE firewall solution supports callback. Using XML automatic continuation (Persistence), including support for version management. Types of messaging services, support alliances. Software patches and update services. Perfect deployment tool. Detailed document. GPL Authorization or Business Authorization (Business Use). Supports Windows 2000 / XP, Linux, and Solaris operating systems. More operating systems will also be supported in future versions.
ICE is composed of some of the following packages: ICEUTIL set of practical functions, such as Unicode processing and thread programming (just C version) SPECE ICE specification language (Specification Language for ICE). SLICE establishes a contract between the customer and the server, and is also used to describe the continuous data. The SLICE compiler is used to compile SLICE into target languages (such as C , Java, XML) or automatically generate documents according to SLICE files. ICE ICE core library. It uses a very efficient protocol (including protocol compression and support for TCP and UDP) to manage all communication tasks, providing a flexible thread pool for multi-threaded servers, and also supports additional functions for extreme scalability - Millions of ICE objects reached. In addition, the ICE core library has some other features. Icebox is dedicated to an application server for an ICE application. Icebox can easily run and manage ICE services, which can be dynamically loaded as DLLs, shared libraries, or Java classes. IcePack Perfect Server Activates and Deploy Tools. With IcePack, the complex task deployed in the xenograft network has been greatly simplified. You only need to provide deployment description information in the industry standard XML format, and ICepack can deal with your rest of the work. Freezefreeze provides automatic continuation to Ice Servant. Just a little code, the application can be combined with the "Evictor) of the Efficient Management Continuous Object. Freeze offers binary data format to get the maximum speed; also provides an XML data format to obtain extreme flexibility. When the SLICE description of the continuous data changes, you can easily migrate the Freeze database using the XML data format - this is essential for version management in large software projects. ICESSL ICE core dynamic SSL transmission plugin. It uses an industry standard SSL protocol to provide authentication, encryption, and message integrity checks. Glacier is a great challenge for the object middleware system is security and firewall. ICE's firewall solution Glacier has greatly simplified the deployment of safe applications. Glacier is certified and filtered by the customer request and allows the customer to call the customer in a secure way. Combined with ICESSL, Glacier provides a powerful security solution for both non-invasive, easy to configure. ICESTORM A message service that supports alliances. Contrary to most other messages or event services, ICestorm provides types of events, which means that broadcast messages on alliances are as easy as in calling an interface. IcePatch is used for patching services issued by software. Let the software keep the latest are often a monotonous task. ICepatch automates the updates of each file and the full directory level. Only the changed file is downloaded to the client machine and use an efficient compression algorithm. Second, comparison with CORBA although Zeroc claims that it is unintentional "Corba," Corba is a great achievement relative to its era ", and ICE has borrowed many good ideas from Corba, but if these Experts can still change within Corba, still think that Corba has future, and they probably do not need to set up new companies, develop new products, "public" to "rebellion". After reading the comparison of "ICE vs. corba" translated from the Zeroc website, you can not only understand that the ICE has the advantage of CORBA, you may also understand that the reason why "Rebel" is "rebel" s reason.
Completeness When we are complete, we mean that real world products are complete, not the completeness of the norms that have never been implemented. We believe that ICE is complete than any CORBA product in the market. You check it yourself: Which CORBA product really provides features that can be compared to ICE? No "Design By" ICE is designed by a small group of enthusiasm, highly experienced people. It does not try to become a million medicines suitable for everyone. On the other hand, in the CORBA specifications, all kinds of "Hua Yong"; these things are forced to inject norms from some interest groups, and they don't really figure out whether these regulations can be implemented. During the submission process of the CORBA specification, a consistent way is often accepted by all the collection of all existing private achievements. As a result, the size and complexity of the specification are far exceeded, and the platform is also larger, slower, and make the resulting complex API become more difficult to use. The API provided by ICE is much smaller, more efficient, more easy to learn more than equivalent CORBA API, and no sacrifice. SLICESLICE is smaller, cleaner, more powerful than CORBA IDL. Its language component is less, but it is more flexible. For example, the built-in dictionary type provides direct support for fast access (Fast-Access) data structure, exception inherits provides a more clean mapping of "language with built-in exception processing." At the same time, SLICE eliminates many unnecessary complexities of CORBA IDL, such as attribute, inout parameters, context, and Objects-by-value (obv) complexity. Continuous SLICE is not just an interface definition language, which can also be used to describe the status of the continuous ICE object, making us more easily writing a server that automatically stores an object status in the database. Metadata
SLICE supports an extensible metadata facility that allows us to mark the SLICE component for applying a specific purpose. For example, metadata can be used to define Java language mapping to meet the needs of a particular application. No Any Type Ice is equivalent to the Corba Any type. Corba users may feel very unexpectedly, because a large number of ANY types in the CORBA specification. However, the ANY type is redundant: a programming language like Java and C does not require an ANY type, and a good distributed system is not required. The ANY type is usually used in both cases: or the system requires an opaque type, and the intermediary can receive and deliver without understanding the details of this type (such as Corba Event Service); or is used as a joint ( UION) of equivalent. ICE can send and receive requests such as "blob" to process the first case, and the SLICE class inherits can handle the second case. No matter which case, the applications are more efficient and safer, and it is more easier to design and implement, and will not suffer from complexity associated with the CORBA ANY type. The ICE core CORBA core has become extremely complicated over time. One of the best examples is Portable Object Adapter, although there is very little implementation that needs to support frequent implementations, it still requires developers to have specialized knowledge to make correct use. On the other hand, the ICE object adapter, it is simpler, more direct, and more powerful than POA: uses POA, some work will become a long-term programming project, and use the ICE object adapter, using some design good APIs can be completed quickly These work. ICE Agreement IIOP is one of the thinnest places of Corba, which is too much design defect, which is difficult to list them one by one. Only a few examples: There is no request package, which makes the forwarding service (such as Event Service) unable to work without understanding all types of details involved; inefficient alignment rules forcing the system to make unnecessary data replication The data coding rules are complicated, but there is no improvement in performance; the object reference coding is very complicated, which hinders efficient intersection and memory sharing implementation; code set consultations have not been defined, and suffering from competitive status; all of these Complexity means that IIOP is difficult to implement and will bring interoperability and performance issues. The ICE protocol is simple, more efficient, and provides characteristics such as data compression and approve request (IIOP unable to support these features). Safety security is always one of the biggest problems in CORBA. OMG repeatedly developed some specification in writing, but there is still no extensive implementation of these specifications, and CORBA users still cannot obtain available and secure ORBs. On the contrary, when designing ICE, we always put security in the primary location. This is also why ICE wants to create SSL, and provide the reason why you can work, flexible, without invasive firewall solutions. C mapping and CORBA and C "work" is very difficult, even for experienced C developers. There are countless traps and defects involving memory management and abnormal security. In contrast, ICE C mapping is very simple and straightforward. Developers are actually impossible to cause memory leakage due to mistakes. The quantity of the rules to be remembered is infinitely less than the number of rules of CORBA C , and the ICE C mapping is based on the STL industry standard. Scalable CORBA technology is very scalable, but the premise is that you are an expert. Use ICE, anyone can write a highly scalable application.
For example, ICE has achieved a continuous "Excelves" model that allows you to easily process millions of objects. What you need to do is to use SLICE to define ongoing object data and let ICE to complete the rest: ICE Run-Time will automatically load and store objects using high-speed databases. Version Management CORBA does not have any mechanism for supporting version management of the object status. The ICE can store the data as an XML format. When the SLICE description of the continuous data changes, the database can be easily transplanted into a new format. Software Update ICepatch tools can be used to maintain a timely update of customer software, which uses compression to efficient data transfer, using checksum to ensure consistency. CORBA does not provide a mechanism for distributing software updates in a distributed system. Type Event Services There is a type of event service specification in CORBA, but its implementation (if any) is very small. Its type of event service still has many known issues, making it actually useless in the reality of the world. The ICE design supports the type of event service from the beginning. ICESTORM is an efficient type of event service implementation while also supporting the alliance. Facets (face) CORBA support inheritance, DCOM supports aggregation. In the past, there were many more than a better debate. Both ICE support: Interface inheritage plus aggregation, in the form of Facets. Facets allows you to use dynamic aggregation instead of static inheritance to extend the type at runtime. Asynchronous Message CORBA supports Asynchonous Message Invocation (AMI), but there is almost no CORBA product implements AMI. With a simple and efficient way, ICE supports AMI from the beginning. ICE also supports Asynchronous Message Dispatch (AMD), there is no corresponding equivalent in CORBA. AMD is a server-side equivalent for customers' AMI. With AMI, you can return the dispatching thread to the ICE and call the result to the customer. AMI and AMD can be connected together to create a very efficient router that is very efficient and resource consumption. AMI and AMD are transparent to customers and servers. That is, the server does not know whether the request arrives through AMI, or synchronously transmits, and customers do not know that the operation call is processed by AMD or synchronously. To support AMI and AMD, there is no need to change the SLICE definition.
Third, Application Examples March 17, 2003, a company named Mutable Realms published a new game called "Wish" on the E3 game exhibition. The company claims that through this game, they define a new game category: Ultra Massive MultiPlayer Online Role Playing Games. Unlike traditional Massively MultiPlayer Online Role Playing Games (mmorpg), Wish will not limit the player on a server that only hundreds of players, but tens of thousands of players appear in the same 3D fantasy world. . The communication platform used by WISH is ICE. As MICHI Henning said, such a game is required for scalability, speed and reliability, only large telecommunications projects can exceed - unimaginable, isn't it? In fact, the two companies in Zeroc and Mutable Realms have worked closely to ensure that ICE can provide all the features needed to develop Wish's games (such "custom" is there is no harm, you probably don't want to run your own application. It's too fast; if you really think it, there is a good way to solve the problem ::: Sleep (100)). Perhaps we have no need to reject Corba, but developers from Mutable Realms, Still "Borrow" Corba to express the appreciation to ICE: "I Have no doubt That Our Productivity Wouldn't Be As Good IF We at Using Corba As Our MiddleWare Technology. Fourth, conclusion "Basically, Ice is what west." When Michi Henning said this, he thought of himself as the world's top CORBA expert, using CORBA every day, it is still in 8 years, still It is necessary to check the book written by yourself to write CORBA code - because he still remembers those details; he also thought of the "fearful" friction and "fear" in this field. Attenuation ... encounter such a situation, do not have "abartering", it is impossible to be true technical experts; and the leading troops began to start with another stove, Corba's last day may be really not far away. But on the other hand, technology may never be true decisive factors in the IT industry. Commercial is. At least, ICE has not received extensive attention, and "Haomen Club" like OMG, as well as major CORBA technology companies, will not easily give up on their site. What is the future of ICE, and it has to be observed. If there are more companies or individuals in China to develop software to develop software, it will undoubtedly help the development and progress of ICE. Rebel is just beginning.